<?xml version="1.0"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="serif,Symbol,ZapfDingbats" font-size="10pt" text-align="justify" line-height="normal" font-selection-strategy="character-by-character" line-height-shift-adjustment="disregard-shifts" language="en"><fo:layout-master-set><fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body display-align="center" margin-bottom="0.5in" margin-top="0.5in"/><fo:region-before region-name="xsl-region-before-blank" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-blank" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="blank-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-blank" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-blank" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - -4pc" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-right="1in" margin-left="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" background-image="http://docbook.sourceforge.net/release/images/draft.png" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:page-sequence-master master-name="titlepage"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="titlepage-first" page-position="first"/><fo:conditional-page-master-reference master-reference="titlepage-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="titlepage-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="lot"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="lot-first" page-position="first"/><fo:conditional-page-master-reference master-reference="lot-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="lot-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="front"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="front-first" page-position="first"/><fo:conditional-page-master-reference master-reference="front-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="front-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="body"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="body-first" page-position="first"/><fo:conditional-page-master-reference master-reference="body-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="body-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="back"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="back-first" page-position="first"/><fo:conditional-page-master-reference master-reference="back-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="back-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="index"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="index-first" page-position="first"/><fo:conditional-page-master-reference master-reference="index-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="index-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="titlepage-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="titlepage-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="titlepage-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="titlepage-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="lot-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="lot-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="lot-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="lot-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="front-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="front-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="front-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="front-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="body-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="body-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="body-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="body-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="back-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="back-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="back-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="back-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="index-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="index-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="index-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="index-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master></fo:layout-master-set><fox:outline xmlns:fox="http://xml.apache.org/fop/extensions" internal-destination="libraries"><fox:label>Part&#xA0;I.&#xA0;The Boost C++ Libraries</fox:label><fox:outline internal-destination="id421580"><fox:label>Libraries Listed Alphabetically</fox:label></fox:outline><fox:outline internal-destination="id352169"><fox:label>Libraries Listed by Category</fox:label><fox:outline internal-destination="id352173"><fox:label>String and text processing</fox:label></fox:outline><fox:outline internal-destination="id350936"><fox:label>Containers</fox:label></fox:outline><fox:outline internal-destination="id351015"><fox:label>Iterators</fox:label></fox:outline><fox:outline internal-destination="id351064"><fox:label>Algorithms</fox:label></fox:outline><fox:outline internal-destination="id351093"><fox:label>Function objects and higher-order programming</fox:label></fox:outline><fox:outline internal-destination="id351192"><fox:label>Generic programming</fox:label></fox:outline><fox:outline internal-destination="id421647"><fox:label>Template metaprogramming</fox:label></fox:outline><fox:outline internal-destination="id421687"><fox:label>Preprocessor metaprogramming</fox:label></fox:outline><fox:outline internal-destination="id421707"><fox:label>Concurrent programming</fox:label></fox:outline><fox:outline internal-destination="id421726"><fox:label>Math and numerics</fox:label></fox:outline><fox:outline internal-destination="id421861"><fox:label>Correctness and testing</fox:label></fox:outline><fox:outline internal-destination="id421900"><fox:label>Data structures</fox:label></fox:outline><fox:outline internal-destination="id421976"><fox:label>Input/Output</fox:label></fox:outline><fox:outline internal-destination="id422014"><fox:label>Inter-language support</fox:label></fox:outline><fox:outline internal-destination="id422039"><fox:label>Memory</fox:label></fox:outline><fox:outline internal-destination="id422077"><fox:label>Parsing</fox:label></fox:outline><fox:outline internal-destination="id422095"><fox:label>Miscellaneous</fox:label></fox:outline><fox:outline internal-destination="id422199"><fox:label>Broken compiler workarounds</fox:label></fox:outline></fox:outline><fox:outline internal-destination="any"><fox:label>Boost.Any</fox:label><fox:outline internal-destination="id422258"><fox:label>Introduction</fox:label></fox:outline><fox:outline internal-destination="id422419"><fox:label>Examples</fox:label></fox:outline><fox:outline internal-destination="any.reference"><fox:label>Reference</fox:label><fox:outline internal-destination="any.ValueType"><fox:label>ValueType requirements</fox:label></fox:outline><fox:outline internal-destination="header.boost.any.hpp"><fox:label>Header &lt;boost/any.hpp&gt;</fox:label><fox:outline internal-destination="bad_any_cast"><fox:label>Class bad_any_cast</fox:label></fox:outline><fox:outline internal-destination="boost.any"><fox:label>Class any</fox:label></fox:outline><fox:outline internal-destination="any_cast"><fox:label>Function any_cast</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="id424278"><fox:label>Acknowledgements</fox:label></fox:outline></fox:outline><fox:outline internal-destination="array"><fox:label>Boost.Array</fox:label><fox:outline internal-destination="array.intro"><fox:label>Introduction</fox:label></fox:outline><fox:outline internal-destination="array.reference"><fox:label>Reference</fox:label><fox:outline internal-destination="header.boost.array.hpp"><fox:label>Header &lt;boost/array.hpp&gt;</fox:label><fox:outline internal-destination="boost.array"><fox:label>Class template array</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="array.rationale"><fox:label>Design Rationale</fox:label></fox:outline><fox:outline internal-destination="array.more.info"><fox:label>For more information...</fox:label></fox:outline><fox:outline internal-destination="array.ack"><fox:label>Acknowledgements</fox:label></fox:outline></fox:outline><fox:outline internal-destination="concepts.reference"><fox:label>Concept reference</fox:label><fox:outline internal-destination="id428138"><fox:label>Concepts</fox:label></fox:outline><fox:outline internal-destination="Assignable"><fox:label>Concept Assignable</fox:label></fox:outline><fox:outline internal-destination="InputIterator"><fox:label>Concept InputIterator</fox:label></fox:outline><fox:outline internal-destination="OutputIterator"><fox:label>Concept OutputIterator</fox:label></fox:outline><fox:outline internal-destination="ForwardIterator"><fox:label>Concept ForwardIterator</fox:label></fox:outline><fox:outline internal-destination="BidirectionalIterator"><fox:label>Concept BidirectionalIterator</fox:label></fox:outline><fox:outline internal-destination="RandomAccessIterator"><fox:label>Concept RandomAccessIterator</fox:label></fox:outline><fox:outline internal-destination="DefaultConstructible"><fox:label>Concept DefaultConstructible</fox:label></fox:outline><fox:outline internal-destination="CopyConstructible"><fox:label>Concept CopyConstructible</fox:label></fox:outline><fox:outline internal-destination="EqualityComparable"><fox:label>Concept EqualityComparable</fox:label></fox:outline><fox:outline internal-destination="LessThanComparable"><fox:label>Concept LessThanComparable</fox:label></fox:outline><fox:outline internal-destination="SignedInteger"><fox:label>Concept SignedInteger</fox:label></fox:outline></fox:outline><fox:outline internal-destination="date_time"><fox:label>Boost.Date_Time</fox:label><fox:outline internal-destination="date_time.intro"><fox:label></fox:label></fox:outline><fox:outline internal-destination="date_time.conceptual"><fox:label>Conceptual</fox:label><fox:outline internal-destination="Motivation"><fox:label>Motivation</fox:label></fox:outline><fox:outline internal-destination="date_time.domain_concepts"><fox:label>Domain Concepts</fox:label></fox:outline><fox:outline internal-destination="date_time.design_concepts"><fox:label>Design Concepts</fox:label></fox:outline><fox:outline internal-destination="date_time.conceptual.more_info"><fox:label>More Information</fox:label></fox:outline></fox:outline><fox:outline internal-destination="date_time.gregorian"><fox:label>Gregorian</fox:label><fox:outline internal-destination="date_time.gregorian.date_class"><fox:label>Date Class</fox:label></fox:outline><fox:outline internal-destination="date_time.gregorian.date_duration"><fox:label>Date Duration (aka Days)</fox:label></fox:outline><fox:outline internal-destination="date_time.gregorian.date_period"><fox:label>Date Period</fox:label></fox:outline><fox:outline internal-destination="date_time.gregorian.date_iterators"><fox:label>Date Iterators</fox:label></fox:outline><fox:outline internal-destination="date_time.gregorian.date_algorithms"><fox:label>Date Generators/Algorithms</fox:label></fox:outline><fox:outline internal-destination="date_time.gregorian.gregorian_calendar"><fox:label>Gregorian Calendar</fox:label></fox:outline><fox:outline internal-destination="date_time.gregorian.day_clock_class"><fox:label>Class day_clock</fox:label></fox:outline></fox:outline><fox:outline internal-destination="date_time.posix_time"><fox:label>Posix Time</fox:label><fox:outline internal-destination="date_time.posix_time.ptime_class"><fox:label>Ptime Class</fox:label></fox:outline><fox:outline internal-destination="date_time.posix_time.time_duration"><fox:label>Time Duration</fox:label></fox:outline><fox:outline internal-destination="date_time.posix_time.time_period"><fox:label>Time Period</fox:label></fox:outline><fox:outline internal-destination="date_time.posix_time.time_iterators"><fox:label>Time Iterators</fox:label></fox:outline><fox:outline internal-destination="date_time.posix_time.local_time_adjust"><fox:label>Local Time Adjustment</fox:label></fox:outline></fox:outline><fox:outline internal-destination="date_time.details"><fox:label>Details</fox:label><fox:outline internal-destination="date_time.calculations"><fox:label>Calculations</fox:label></fox:outline><fox:outline internal-destination="date_time.design_goals"><fox:label>Design Goals</fox:label></fox:outline><fox:outline internal-destination="date_time.tradeoffs"><fox:label>Tradeoffs: Stability, Predictability, and Approximations</fox:label></fox:outline><fox:outline internal-destination="date_time.serialization"><fox:label>Serialization</fox:label></fox:outline><fox:outline internal-destination="date_time.terminology"><fox:label>Terminology</fox:label></fox:outline><fox:outline internal-destination="date_time.references"><fox:label>References</fox:label></fox:outline><fox:outline internal-destination="date_time.buildinfo"><fox:label>Build-Compiler Information</fox:label></fox:outline><fox:outline internal-destination="date_time.tests"><fox:label>Tests</fox:label></fox:outline><fox:outline internal-destination="date_time.changes"><fox:label>Change History</fox:label></fox:outline><fox:outline internal-destination="date_time.acknowledgements"><fox:label>Acknowledgements</fox:label></fox:outline></fox:outline><fox:outline internal-destination="date_time.examples"><fox:label>Examples</fox:label><fox:outline internal-destination="date_time.examples.general_usage_examples"><fox:label>General Usage Examples</fox:label></fox:outline><fox:outline internal-destination="date_time.examples.dates_as_strings"><fox:label>Dates as Strings</fox:label></fox:outline><fox:outline internal-destination="date_time.examples.days_alive"><fox:label>Days Alive</fox:label></fox:outline><fox:outline internal-destination="date_time.examples.days_between_new_year"><fox:label>Days Between New Years</fox:label></fox:outline><fox:outline internal-destination="date_time.examples.end_of_month_day"><fox:label>End of the Months</fox:label></fox:outline><fox:outline internal-destination="date_time.examples.localization"><fox:label>Localization Demonstration</fox:label></fox:outline><fox:outline internal-destination="date_time.examples.date_period_calc"><fox:label>Date Period Calculations</fox:label></fox:outline><fox:outline internal-destination="date_time.examples.print_holidays"><fox:label>Print Holidays</fox:label></fox:outline><fox:outline internal-destination="date_time.examples.print_month"><fox:label>Print Month</fox:label></fox:outline><fox:outline internal-destination="date_time.examples.month_add"><fox:label>Month Adding</fox:label></fox:outline><fox:outline internal-destination="date_time.examples.time_math"><fox:label>Time Math</fox:label></fox:outline><fox:outline internal-destination="date_time.examples.print_hours"><fox:label>Print Hours</fox:label></fox:outline><fox:outline internal-destination="date_time.examples.local_utc_conversion"><fox:label>Local to UTC Conversion</fox:label></fox:outline><fox:outline internal-destination="date_time.examples.time_periods"><fox:label>Time Periods</fox:label></fox:outline></fox:outline><fox:outline internal-destination="date_time.doxy"><fox:label>Library Reference</fox:label><fox:outline internal-destination="date_time_reference"><fox:label>Date Time Reference</fox:label><fox:outline internal-destination="id308102"><fox:label>Header &lt;boost/date_time/adjust_functors.hpp&gt;</fox:label><fox:outline internal-destination="day_functor"><fox:label>Class template day_functor</fox:label></fox:outline><fox:outline internal-destination="month_functor"><fox:label>Class template month_functor</fox:label></fox:outline><fox:outline internal-destination="week_functor"><fox:label>Class template week_functor</fox:label></fox:outline><fox:outline internal-destination="year_functor"><fox:label>Class template year_functor</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id400379"><fox:label>Header &lt;boost/date_time/c_local_time_adjustor.hpp&gt;</fox:label><fox:outline internal-destination="c_local_adjustor"><fox:label>Class template c_local_adjustor</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id368278"><fox:label>Header &lt;boost/date_time/c_time.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id386650"><fox:label>Header &lt;boost/date_time/compiler_config.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id304692"><fox:label>Header &lt;boost/date_time/constrained_value.hpp&gt;</fox:label><fox:outline internal-destination="constrained_value"><fox:label>Class template constrained_value</fox:label></fox:outline><fox:outline internal-destination="simple_exception_policy"><fox:label>Class template simple_exception_policy</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id383676"><fox:label>Header &lt;boost/date_time/date.hpp&gt;</fox:label><fox:outline internal-destination="boost.date_time.date"><fox:label>Class template date</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id417259"><fox:label>Header &lt;boost/date_time/date_clock_device.hpp&gt;</fox:label><fox:outline internal-destination="day_clock"><fox:label>Class template day_clock</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id354175"><fox:label>Header &lt;boost/date_time/date_defs.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id432576"><fox:label>Header &lt;boost/date_time/date_duration.hpp&gt;</fox:label><fox:outline internal-destination="date_duration"><fox:label>Class template date_duration</fox:label></fox:outline><fox:outline internal-destination="duration_traits_long"><fox:label>Struct duration_traits_long</fox:label></fox:outline><fox:outline internal-destination="duration_traits_adapted"><fox:label>Struct duration_traits_adapted</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id381315"><fox:label>Header &lt;boost/date_time/date_duration_types.hpp&gt;</fox:label><fox:outline internal-destination="weeks_duration"><fox:label>Class template weeks_duration</fox:label></fox:outline><fox:outline internal-destination="months_duration"><fox:label>Class template months_duration</fox:label></fox:outline><fox:outline internal-destination="years_duration"><fox:label>Class template years_duration</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id383059"><fox:label>Header &lt;boost/date_time/date_format_simple.hpp&gt;</fox:label><fox:outline internal-destination="simple_format"><fox:label>Class template simple_format</fox:label></fox:outline><fox:outline internal-destination="id375649-bb"><fox:label>Class simple_format&lt;wchar_t&gt;</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id382856"><fox:label>Header &lt;boost/date_time/date_formatting.hpp&gt;</fox:label><fox:outline internal-destination="month_formatter"><fox:label>Class template month_formatter</fox:label></fox:outline><fox:outline internal-destination="ymd_formatter"><fox:label>Class template ymd_formatter</fox:label></fox:outline><fox:outline internal-destination="date_formatter"><fox:label>Class template date_formatter</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id297925"><fox:label>Header &lt;boost/date_time/date_formatting_limited.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id301482"><fox:label>Header &lt;boost/date_time/date_formatting_locales.hpp&gt;</fox:label><fox:outline internal-destination="ostream_month_formatter"><fox:label>Class template ostream_month_formatter</fox:label></fox:outline><fox:outline internal-destination="ostream_weekday_formatter"><fox:label>Class template ostream_weekday_formatter</fox:label></fox:outline><fox:outline internal-destination="ostream_ymd_formatter"><fox:label>Class template ostream_ymd_formatter</fox:label></fox:outline><fox:outline internal-destination="ostream_date_formatter"><fox:label>Class template ostream_date_formatter</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id360638"><fox:label>Header &lt;boost/date_time/date_generators.hpp&gt;</fox:label><fox:outline internal-destination="year_based_generator"><fox:label>Class template year_based_generator</fox:label></fox:outline><fox:outline internal-destination="partial_date"><fox:label>Class template partial_date</fox:label></fox:outline><fox:outline internal-destination="nth_kday_of_month"><fox:label>Class template nth_kday_of_month</fox:label></fox:outline><fox:outline internal-destination="first_kday_of_month"><fox:label>Class template first_kday_of_month</fox:label></fox:outline><fox:outline internal-destination="last_kday_of_month"><fox:label>Class template last_kday_of_month</fox:label></fox:outline><fox:outline internal-destination="first_kday_after"><fox:label>Class template first_kday_after</fox:label></fox:outline><fox:outline internal-destination="first_kday_before"><fox:label>Class template first_kday_before</fox:label></fox:outline><fox:outline internal-destination="days_until_weekday"><fox:label>Function template days_until_weekday</fox:label></fox:outline><fox:outline internal-destination="days_before_weekday"><fox:label>Function template days_before_weekday</fox:label></fox:outline><fox:outline internal-destination="next_weekday"><fox:label>Function template next_weekday</fox:label></fox:outline><fox:outline internal-destination="previous_weekday"><fox:label>Function template previous_weekday</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id391588"><fox:label>Header &lt;boost/date_time/date_iterator.hpp&gt;</fox:label><fox:outline internal-destination="date_itr_base"><fox:label>Class template date_itr_base</fox:label></fox:outline><fox:outline internal-destination="date_itr"><fox:label>Class template date_itr</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id330778"><fox:label>Header &lt;boost/date_time/date_names_put.hpp&gt;</fox:label><fox:outline internal-destination="date_names_put"><fox:label>Class template date_names_put</fox:label></fox:outline><fox:outline internal-destination="all_date_names_put"><fox:label>Class template all_date_names_put</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id360230"><fox:label>Header &lt;boost/date_time/dst_rules.hpp&gt;</fox:label><fox:outline internal-destination="dst_calculator"><fox:label>Class template dst_calculator</fox:label></fox:outline><fox:outline internal-destination="dst_calc_engine"><fox:label>Class template dst_calc_engine</fox:label></fox:outline><fox:outline internal-destination="us_dst_rules"><fox:label>Class template us_dst_rules</fox:label></fox:outline><fox:outline internal-destination="null_dst_rules"><fox:label>Class template null_dst_rules</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id376648"><fox:label>Header &lt;boost/date_time/dst_transition_generators.hpp&gt;</fox:label><fox:outline internal-destination="dst_day_calc_rule"><fox:label>Class template dst_day_calc_rule</fox:label></fox:outline><fox:outline internal-destination="day_calc_dst_rule"><fox:label>Class template day_calc_dst_rule</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id356584"><fox:label>Header &lt;boost/date_time/filetime_functions.hpp&gt;</fox:label><fox:outline internal-destination="time_from_ftime"><fox:label>Function template time_from_ftime</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id338206"><fox:label>Header &lt;boost/date_time/gregorian_calendar.hpp&gt;</fox:label><fox:outline internal-destination="gregorian_calendar_base"><fox:label>Class template gregorian_calendar_base</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id386642"><fox:label>Header &lt;boost/date_time/int_adapter.hpp&gt;</fox:label><fox:outline internal-destination="int_adapter"><fox:label>Class template int_adapter</fox:label></fox:outline><fox:outline internal-destination="id384987"><fox:label>Function template operator&lt;&lt;</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id387443"><fox:label>Header &lt;boost/date_time/iso_format.hpp&gt;</fox:label><fox:outline internal-destination="iso_format_base"><fox:label>Class template iso_format_base</fox:label></fox:outline><fox:outline internal-destination="id301674-bb"><fox:label>Class iso_format_base&lt;wchar_t&gt;</fox:label></fox:outline><fox:outline internal-destination="iso_format"><fox:label>Class template iso_format</fox:label></fox:outline><fox:outline internal-destination="iso_extended_format"><fox:label>Class template iso_extended_format</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id399454"><fox:label>Header &lt;boost/date_time/local_time_adjustor.hpp&gt;</fox:label><fox:outline internal-destination="utc_adjustment"><fox:label>Class template utc_adjustment</fox:label></fox:outline><fox:outline internal-destination="id418394"><fox:label>Class template dynamic_local_time_adjustor</fox:label></fox:outline><fox:outline internal-destination="static_local_time_adjustor"><fox:label>Class template static_local_time_adjustor</fox:label></fox:outline><fox:outline internal-destination="local_adjustor"><fox:label>Class template local_adjustor</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id379829"><fox:label>Header &lt;boost/date_time/local_timezone_defs.hpp&gt;</fox:label><fox:outline internal-destination="us_dst_trait"><fox:label>Struct template us_dst_trait</fox:label></fox:outline><fox:outline internal-destination="eu_dst_trait"><fox:label>Struct template eu_dst_trait</fox:label></fox:outline><fox:outline internal-destination="uk_dst_trait"><fox:label>Struct template uk_dst_trait</fox:label></fox:outline><fox:outline internal-destination="acst_dst_trait"><fox:label>Struct template acst_dst_trait</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id331390"><fox:label>Header &lt;boost/date_time/microsec_time_clock.hpp&gt;</fox:label><fox:outline internal-destination="microsec_clock"><fox:label>Class template microsec_clock</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id376408"><fox:label>Header &lt;boost/date_time/parse_format_base.hpp&gt;</fox:label><fox:outline internal-destination="id417225"><fox:label>Type ymd_order_spec</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id341416"><fox:label>Header &lt;boost/date_time/period.hpp&gt;</fox:label><fox:outline internal-destination="period"><fox:label>Class template period</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id404576"><fox:label>Header &lt;boost/date_time/special_defs.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id373457"><fox:label>Header &lt;boost/date_time/time.hpp&gt;</fox:label><fox:outline internal-destination="base_time"><fox:label>Class template base_time</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id347523"><fox:label>Header &lt;boost/date_time/time_clock.hpp&gt;</fox:label><fox:outline internal-destination="second_clock"><fox:label>Class template second_clock</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id390099"><fox:label>Header &lt;boost/date_time/time_defs.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id404841"><fox:label>Header &lt;boost/date_time/time_duration.hpp&gt;</fox:label><fox:outline internal-destination="id351182"><fox:label>Class template time_duration</fox:label></fox:outline><fox:outline internal-destination="subsecond_duration"><fox:label>Class template subsecond_duration</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id435250"><fox:label>Header &lt;boost/date_time/time_formatting_streams.hpp&gt;</fox:label><fox:outline internal-destination="id401643"><fox:label>Class template ostream_time_duration_formatter</fox:label></fox:outline><fox:outline internal-destination="ostream_time_formatter"><fox:label>Class template ostream_time_formatter</fox:label></fox:outline><fox:outline internal-destination="id379036"><fox:label>Class template ostream_time_period_formatter</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id322749"><fox:label>Header &lt;boost/date_time/time_iterator.hpp&gt;</fox:label><fox:outline internal-destination="time_itr"><fox:label>Class template time_itr</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id364961"><fox:label>Header &lt;boost/date_time/time_parsing.hpp&gt;</fox:label><fox:outline internal-destination="id367349"><fox:label>Function template parse_delimited_time_duration</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id316460"><fox:label>Header &lt;boost/date_time/time_resolution_traits.hpp&gt;</fox:label><fox:outline internal-destination="id329534"><fox:label>Struct time_resolution_traits_bi32_impl</fox:label></fox:outline><fox:outline internal-destination="id361126"><fox:label>Struct time_resolution_traits_adapted32_impl</fox:label></fox:outline><fox:outline internal-destination="id434902"><fox:label>Struct time_resolution_traits_bi64_impl</fox:label></fox:outline><fox:outline internal-destination="id430258"><fox:label>Struct time_resolution_traits_adapted64_impl</fox:label></fox:outline><fox:outline internal-destination="time_resolution_traits"><fox:label>Class template time_resolution_traits</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id340438"><fox:label>Header &lt;boost/date_time/time_system_counted.hpp&gt;</fox:label><fox:outline internal-destination="counted_time_rep"><fox:label>Struct template counted_time_rep</fox:label></fox:outline><fox:outline internal-destination="counted_time_system"><fox:label>Class template counted_time_system</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id354130"><fox:label>Header &lt;boost/date_time/time_system_split.hpp&gt;</fox:label><fox:outline internal-destination="split_timedate_system"><fox:label>Class template split_timedate_system</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id418251"><fox:label>Header &lt;boost/date_time/wrapping_int.hpp&gt;</fox:label><fox:outline internal-destination="wrapping_int"><fox:label>Class template wrapping_int</fox:label></fox:outline><fox:outline internal-destination="wrapping_int2"><fox:label>Class template wrapping_int2</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id395548"><fox:label>Header &lt;boost/date_time/year_month_day.hpp&gt;</fox:label><fox:outline internal-destination="year_month_day_base"><fox:label>Struct template year_month_day_base</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="gregorian_reference"><fox:label>Gregorian Reference</fox:label><fox:outline internal-destination="id329645"><fox:label>Header &lt;boost/date_time/gregorian/formatters.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id395520"><fox:label>Header &lt;boost/date_time/gregorian/formatters_limited.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id331975"><fox:label>Header &lt;boost/date_time/gregorian/greg_calendar.hpp&gt;</fox:label><fox:outline internal-destination="gregorian_calendar"><fox:label>Class gregorian_calendar</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id337478"><fox:label>Header &lt;boost/date_time/gregorian/greg_date.hpp&gt;</fox:label><fox:outline internal-destination="boost.gregorian.date"><fox:label>Class date</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id317225"><fox:label>Header &lt;boost/date_time/gregorian/greg_day.hpp&gt;</fox:label><fox:outline internal-destination="bad_day_of_month"><fox:label>Struct bad_day_of_month</fox:label></fox:outline><fox:outline internal-destination="greg_day"><fox:label>Class greg_day</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id347220"><fox:label>Header &lt;boost/date_time/gregorian/greg_day_of_year.hpp&gt;</fox:label><fox:outline internal-destination="bad_day_of_year"><fox:label>Struct bad_day_of_year</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id313866"><fox:label>Header &lt;boost/date_time/gregorian/greg_duration.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id391110"><fox:label>Header &lt;boost/date_time/gregorian/greg_duration_types.hpp&gt;</fox:label><fox:outline internal-destination="greg_durations_config"><fox:label>Struct greg_durations_config</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id388664"><fox:label>Header &lt;boost/date_time/gregorian/greg_facet.hpp&gt;</fox:label><fox:outline internal-destination="greg_facet_config"><fox:label>Struct greg_facet_config</fox:label></fox:outline><fox:outline internal-destination="id307366"><fox:label>Function template operator&lt;&lt;</fox:label></fox:outline><fox:outline internal-destination="id382673"><fox:label>Function template operator&lt;&lt;</fox:label></fox:outline><fox:outline internal-destination="id285910"><fox:label>Function template operator&lt;&lt;</fox:label></fox:outline><fox:outline internal-destination="id287707"><fox:label>Function template operator&lt;&lt;</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id347825"><fox:label>Header &lt;boost/date_time/gregorian/greg_month.hpp&gt;</fox:label><fox:outline internal-destination="bad_month"><fox:label>Struct bad_month</fox:label></fox:outline><fox:outline internal-destination="greg_month"><fox:label>Class greg_month</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id308611"><fox:label>Header &lt;boost/date_time/gregorian/greg_weekday.hpp&gt;</fox:label><fox:outline internal-destination="bad_weekday"><fox:label>Struct bad_weekday</fox:label></fox:outline><fox:outline internal-destination="greg_weekday"><fox:label>Class greg_weekday</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id351055"><fox:label>Header &lt;boost/date_time/gregorian/greg_year.hpp&gt;</fox:label><fox:outline internal-destination="bad_year"><fox:label>Struct bad_year</fox:label></fox:outline><fox:outline internal-destination="greg_year"><fox:label>Class greg_year</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id331597"><fox:label>Header &lt;boost/date_time/gregorian/greg_ymd.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id405081"><fox:label>Header &lt;boost/date_time/gregorian/gregorian.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id369276"><fox:label>Header &lt;boost/date_time/gregorian/gregorian_types.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id345616"><fox:label>Header &lt;boost/date_time/gregorian/parsers.hpp&gt;</fox:label></fox:outline></fox:outline><fox:outline internal-destination="posix_time_reference"><fox:label>Posix Time Reference</fox:label><fox:outline internal-destination="id367327"><fox:label>Header &lt;boost/date_time/posix_time/conversion.hpp&gt;</fox:label><fox:outline internal-destination="from_ftime"><fox:label>Function template from_ftime</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id376463"><fox:label>Header &lt;boost/date_time/posix_time/date_duration_operators.hpp&gt;</fox:label><fox:outline internal-destination="id317131"><fox:label>Function operator+</fox:label></fox:outline><fox:outline internal-destination="id427352"><fox:label>Function operator+=</fox:label></fox:outline><fox:outline internal-destination="id419875"><fox:label>Function operator-</fox:label></fox:outline><fox:outline internal-destination="id412521"><fox:label>Function operator-=</fox:label></fox:outline><fox:outline internal-destination="id322621"><fox:label>Function operator+</fox:label></fox:outline><fox:outline internal-destination="id327656"><fox:label>Function operator+=</fox:label></fox:outline><fox:outline internal-destination="id320262"><fox:label>Function operator-</fox:label></fox:outline><fox:outline internal-destination="id319945"><fox:label>Function operator-=</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id310460"><fox:label>Header &lt;boost/date_time/posix_time/posix_time.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id444833"><fox:label>Header &lt;boost/date_time/posix_time/posix_time_config.hpp&gt;</fox:label><fox:outline internal-destination="id344570"><fox:label>Class time_duration</fox:label></fox:outline><fox:outline internal-destination="simple_time_rep"><fox:label>Struct simple_time_rep</fox:label></fox:outline><fox:outline internal-destination="posix_time_system_config"><fox:label>Class posix_time_system_config</fox:label></fox:outline><fox:outline internal-destination="id381340"><fox:label>Class millisec_posix_time_system_config</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id300614"><fox:label>Header &lt;boost/date_time/posix_time/posix_time_duration.hpp&gt;</fox:label><fox:outline internal-destination="hours"><fox:label>Class hours</fox:label></fox:outline><fox:outline internal-destination="minutes"><fox:label>Class minutes</fox:label></fox:outline><fox:outline internal-destination="seconds"><fox:label>Class seconds</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id330577"><fox:label>Header &lt;boost/date_time/posix_time/posix_time_system.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id391049"><fox:label>Header &lt;boost/date_time/posix_time/posix_time_types.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id408599"><fox:label>Header &lt;boost/date_time/posix_time/ptime.hpp&gt;</fox:label><fox:outline internal-destination="ptime"><fox:label>Class ptime</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id356305"><fox:label>Header &lt;boost/date_time/posix_time/time_formatters.hpp&gt;</fox:label><fox:outline internal-destination="id425116"><fox:label>Function template operator&gt;&gt;</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id431429"><fox:label>Header &lt;boost/date_time/posix_time/time_formatters_limited.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id303750"><fox:label>Header &lt;boost/date_time/posix_time/time_parsers.hpp&gt;</fox:label><fox:outline internal-destination="duration_from_string"><fox:label>Function duration_from_string</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id405012"><fox:label>Header &lt;boost/date_time/posix_time/time_period.hpp&gt;</fox:label></fox:outline></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="function"><fox:label>Boost.Function</fox:label><fox:outline internal-destination="function.intro"><fox:label>Introduction</fox:label></fox:outline><fox:outline internal-destination="function.history"><fox:label>History &amp; Compatibility Notes</fox:label></fox:outline><fox:outline internal-destination="function.tutorial"><fox:label>Tutorial</fox:label><fox:outline internal-destination="id501106"><fox:label>Basic Usage</fox:label></fox:outline><fox:outline internal-destination="id501416"><fox:label>Free functions</fox:label></fox:outline><fox:outline internal-destination="id501448"><fox:label>Member functions</fox:label></fox:outline><fox:outline internal-destination="id501610"><fox:label>References to Function Objects</fox:label></fox:outline><fox:outline internal-destination="id501758"><fox:label>Comparing Boost.Function function objects</fox:label></fox:outline></fox:outline><fox:outline internal-destination="function.reference"><fox:label>Reference</fox:label><fox:outline internal-destination="function.definitions"><fox:label>Definitions</fox:label></fox:outline><fox:outline internal-destination="header.boost.function.hpp"><fox:label>Header &lt;boost/function.hpp&gt;</fox:label><fox:outline internal-destination="bad_function_call"><fox:label>Class bad_function_call</fox:label></fox:outline><fox:outline internal-destination="function_base"><fox:label>Class function_base</fox:label></fox:outline><fox:outline internal-destination="functionN"><fox:label>Class template functionN</fox:label></fox:outline><fox:outline internal-destination="boost.function"><fox:label>Class template function</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id330862"><fox:label>Header &lt;boost/function_equal.hpp&gt;</fox:label><fox:outline internal-destination="function_equal"><fox:label>Function template function_equal</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="function.faq"><fox:label>Frequently Asked Questions</fox:label></fox:outline><fox:outline internal-destination="function.misc"><fox:label>Miscellaneous Notes</fox:label><fox:outline internal-destination="id513618"><fox:label>Boost.Function vs. Function Pointers</fox:label></fox:outline><fox:outline internal-destination="id513673"><fox:label>Performance</fox:label><fox:outline internal-destination="id513677"><fox:label>Function object wrapper size</fox:label></fox:outline><fox:outline internal-destination="id513688"><fox:label>Copying efficiency</fox:label></fox:outline><fox:outline internal-destination="id513707"><fox:label>Invocation efficiency</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id513718"><fox:label>Combatting virtual function "bloat"</fox:label></fox:outline><fox:outline internal-destination="id513755"><fox:label>Acknowledgements</fox:label></fox:outline></fox:outline><fox:outline internal-destination="function.testsuite"><fox:label>Testsuite</fox:label><fox:outline internal-destination="function.testsuite.acceptance"><fox:label>Acceptance tests</fox:label></fox:outline><fox:outline internal-destination="function.testsuite.negative"><fox:label>Negative tests</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="lambda"><fox:label>Boost.Lambda</fox:label><fox:outline internal-destination="introduction"><fox:label>In a nutshell</fox:label></fox:outline><fox:outline internal-destination="lambda.getting_started"><fox:label>Getting Started</fox:label><fox:outline internal-destination="id514454"><fox:label>Installing the library</fox:label></fox:outline><fox:outline internal-destination="id514750"><fox:label>Conventions used in this document</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id514778"><fox:label>Introduction</fox:label><fox:outline internal-destination="id514782"><fox:label>Motivation</fox:label></fox:outline><fox:outline internal-destination="id515056"><fox:label>Introduction to lambda expressions</fox:label><fox:outline internal-destination="lambda.partial_function_application"><fox:label>Partial function application</fox:label></fox:outline><fox:outline internal-destination="lambda.terminology"><fox:label>Terminology</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="lambda.using_library"><fox:label>Using the library</fox:label><fox:outline internal-destination="lambda.introductory_examples"><fox:label>Introductory Examples</fox:label></fox:outline><fox:outline internal-destination="lambda.parameter_and_return_types"><fox:label>Parameter and return types of lambda functors</fox:label></fox:outline><fox:outline internal-destination="lambda.actual_arguments_to_lambda_functors"><fox:label>About actual arguments to lambda functors</fox:label></fox:outline><fox:outline internal-destination="lambda.storing_bound_arguments"><fox:label>Storing bound arguments in lambda functions</fox:label></fox:outline></fox:outline><fox:outline internal-destination="lambda.le_in_details"><fox:label>Lambda expressions in details</fox:label><fox:outline internal-destination="lambda.placeholders"><fox:label>Placeholders</fox:label></fox:outline><fox:outline internal-destination="lambda.operator_expressions"><fox:label>Operator expressions</fox:label><fox:outline internal-destination="id516285"><fox:label>Operators that cannot be overloaded</fox:label></fox:outline><fox:outline internal-destination="lambda.assignment_and_subscript"><fox:label>Assignment and subscript operators</fox:label></fox:outline><fox:outline internal-destination="lambda.logical_operators"><fox:label>Logical operators</fox:label></fox:outline><fox:outline internal-destination="lambda.comma_operator"><fox:label>Comma operator</fox:label></fox:outline><fox:outline internal-destination="lambda.function_call_operator"><fox:label>Function call operator</fox:label></fox:outline><fox:outline internal-destination="lambda.member_pointer_operator"><fox:label>Member pointer operator</fox:label></fox:outline></fox:outline><fox:outline internal-destination="lambda.bind_expressions"><fox:label>Bind expressions</fox:label><fox:outline internal-destination="lambda.function_pointers_as_targets"><fox:label>Function pointers or references as targets</fox:label></fox:outline><fox:outline internal-destination="member_functions_as_targets"><fox:label>Member functions as targets</fox:label></fox:outline><fox:outline internal-destination="lambda.members_variables_as_targets"><fox:label>Member variables as targets</fox:label></fox:outline><fox:outline internal-destination="lambda.function_objects_as_targets"><fox:label>Function objects as targets</fox:label></fox:outline></fox:outline><fox:outline internal-destination="lambda.overriding_deduced_return_type"><fox:label>Overriding the deduced return type</fox:label><fox:outline internal-destination="lambda.nullary_functors_and_ret"><fox:label>Nullary lambda functors and ret</fox:label></fox:outline></fox:outline><fox:outline internal-destination="lambda.delaying_constants_and_variables"><fox:label>Delaying constants and variables</fox:label></fox:outline><fox:outline internal-destination="lambda.lambda_expressions_for_control_structures"><fox:label>Lambda expressions for control structures</fox:label><fox:outline internal-destination="lambda.switch_statement"><fox:label>Switch statement</fox:label></fox:outline></fox:outline><fox:outline internal-destination="lambda.exceptions"><fox:label>Exceptions</fox:label></fox:outline><fox:outline internal-destination="lambda.construction_and_destruction"><fox:label>Construction and destruction</fox:label></fox:outline><fox:outline internal-destination="id518957"><fox:label>Special lambda expressions</fox:label><fox:outline internal-destination="id518961"><fox:label>Preventing argument substitution</fox:label><fox:outline internal-destination="lambda.unlambda"><fox:label>Unlambda</fox:label></fox:outline><fox:outline internal-destination="id519185"><fox:label>Protect</fox:label></fox:outline></fox:outline><fox:outline internal-destination="lambda.rvalues_as_actual_arguments"><fox:label>Rvalues as actual arguments to lambda functors</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id519440"><fox:label>Casts, sizeof and typeid</fox:label><fox:outline internal-destination="lambda.cast_expressions"><fox:label>Cast expressions</fox:label></fox:outline><fox:outline internal-destination="id519526"><fox:label>Sizeof and typeid</fox:label></fox:outline></fox:outline><fox:outline internal-destination="lambda.nested_stl_algorithms"><fox:label>Nesting STL algorithm invocations</fox:label></fox:outline></fox:outline><fox:outline internal-destination="lambda.extending"><fox:label>Extending return type deduction system</fox:label></fox:outline><fox:outline internal-destination="id521347"><fox:label>Practical considerations</fox:label><fox:outline internal-destination="id521351"><fox:label>Performance</fox:label></fox:outline><fox:outline internal-destination="id521682"><fox:label>About compiling</fox:label></fox:outline><fox:outline internal-destination="id521720"><fox:label>Portability</fox:label><fox:outline internal-destination="id521745"><fox:label>Test coverage</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="id521979"><fox:label>Relation to other Boost libraries</fox:label><fox:outline internal-destination="id521983"><fox:label>Boost Function</fox:label></fox:outline><fox:outline internal-destination="id522068"><fox:label>Boost Bind</fox:label><fox:outline internal-destination="id522114"><fox:label>First argument of bind expression</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="id522202"><fox:label>Contributors</fox:label></fox:outline><fox:outline internal-destination="id522222"><fox:label>Appendix&#xA0;A.&#xA0;Rationale for some of the design decisions</fox:label><fox:outline internal-destination="lambda.why_weak_arity"><fox:label>Lambda functor arity</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id522341"><fox:label>Bibliography</fox:label></fox:outline></fox:outline><fox:outline internal-destination="program_options"><fox:label>Boost.Program_options</fox:label><fox:outline internal-destination="id522718"><fox:label>Introduction</fox:label></fox:outline><fox:outline internal-destination="program_options.tutorial"><fox:label>Tutorial</fox:label><fox:outline internal-destination="id522798"><fox:label>Getting Started</fox:label></fox:outline><fox:outline internal-destination="id522935"><fox:label>Option Details</fox:label></fox:outline><fox:outline internal-destination="id523095"><fox:label>Multiple Sources</fox:label></fox:outline></fox:outline><fox:outline internal-destination="program_options.overview"><fox:label>Library Overview</fox:label><fox:outline internal-destination="id523322"><fox:label>Options Description Component</fox:label><fox:outline internal-destination="id523533"><fox:label>Syntactic information</fox:label></fox:outline><fox:outline internal-destination="id523608"><fox:label>Semantic information</fox:label></fox:outline><fox:outline internal-destination="id523649"><fox:label>Positional options</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id523727"><fox:label>Parsers Component</fox:label></fox:outline><fox:outline internal-destination="id523804"><fox:label>Storage Component</fox:label></fox:outline><fox:outline internal-destination="id523895"><fox:label>Annotated List of Symbols</fox:label></fox:outline></fox:outline><fox:outline internal-destination="program_options.howto"><fox:label>How To</fox:label><fox:outline internal-destination="id524031"><fox:label>Non-conventional Syntax</fox:label></fox:outline><fox:outline internal-destination="id524089"><fox:label>Response Files</fox:label></fox:outline><fox:outline internal-destination="id524170"><fox:label>Winmain Command Line</fox:label></fox:outline><fox:outline internal-destination="id524211"><fox:label>Option Groups and Hidden Options</fox:label></fox:outline><fox:outline internal-destination="id524344"><fox:label>Custom Validators</fox:label></fox:outline><fox:outline internal-destination="id524437"><fox:label>Unicode Support</fox:label></fox:outline></fox:outline><fox:outline internal-destination="program_options.design"><fox:label>Design Discussion</fox:label><fox:outline internal-destination="program_options.design.unicode"><fox:label>Unicode Support</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id524912"><fox:label>Acknowledgements</fox:label></fox:outline><fox:outline internal-destination="program_options.reference"><fox:label>Reference</fox:label><fox:outline internal-destination="id246856"><fox:label>Header &lt;boost/program_options/cmdline.hpp&gt;</fox:label><fox:outline internal-destination="id321818"><fox:label>Type style_t</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id436818"><fox:label>Header &lt;boost/program_options/environment_iterator.hpp&gt;</fox:label><fox:outline internal-destination="environment_iterator"><fox:label>Class environment_iterator</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id280769"><fox:label>Header &lt;boost/program_options/eof_iterator.hpp&gt;</fox:label><fox:outline internal-destination="eof_iterator"><fox:label>Class template eof_iterator</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id427440"><fox:label>Header &lt;boost/program_options/errors.hpp&gt;</fox:label><fox:outline internal-destination="error"><fox:label>Class error</fox:label></fox:outline><fox:outline internal-destination="invalid_syntax"><fox:label>Class invalid_syntax</fox:label></fox:outline><fox:outline internal-destination="unknown_option"><fox:label>Class unknown_option</fox:label></fox:outline><fox:outline internal-destination="ambiguous_option"><fox:label>Class ambiguous_option</fox:label></fox:outline><fox:outline internal-destination="multiple_values"><fox:label>Class multiple_values</fox:label></fox:outline><fox:outline internal-destination="multiple_occurrences"><fox:label>Class multiple_occurrences</fox:label></fox:outline><fox:outline internal-destination="validation_error"><fox:label>Class validation_error</fox:label></fox:outline><fox:outline internal-destination="invalid_option_value"><fox:label>Class invalid_option_value</fox:label></fox:outline><fox:outline internal-destination="id278842"><fox:label>Class too_many_positional_options_error</fox:label></fox:outline><fox:outline internal-destination="id436306"><fox:label>Class too_few_positional_options_error</fox:label></fox:outline><fox:outline internal-destination="id233214"><fox:label>Class invalid_command_line_syntax</fox:label></fox:outline><fox:outline internal-destination="invalid_command_line_style"><fox:label>Class invalid_command_line_style</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id419627"><fox:label>Header &lt;boost/program_options/option.hpp&gt;</fox:label><fox:outline internal-destination="basic_option"><fox:label>Class template basic_option</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id258673"><fox:label>Header &lt;boost/program_options/options_description.hpp&gt;</fox:label><fox:outline internal-destination="option_description"><fox:label>Class option_description</fox:label></fox:outline><fox:outline internal-destination="id367899"><fox:label>Class options_description_easy_init</fox:label></fox:outline><fox:outline internal-destination="options_description"><fox:label>Class options_description</fox:label></fox:outline><fox:outline internal-destination="duplicate_option_error"><fox:label>Class duplicate_option_error</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id225750"><fox:label>Header &lt;boost/program_options/parsers.hpp&gt;</fox:label><fox:outline internal-destination="basic_parsed_options"><fox:label>Class template basic_parsed_options</fox:label></fox:outline><fox:outline internal-destination="id389683-bb"><fox:label>Class basic_parsed_options&lt;wchar_t&gt;</fox:label></fox:outline><fox:outline internal-destination="common_command_line_parser"><fox:label>Class common_command_line_parser</fox:label></fox:outline><fox:outline internal-destination="basic_command_line_parser"><fox:label>Class template basic_command_line_parser</fox:label></fox:outline><fox:outline internal-destination="parse_command_line"><fox:label>Function template parse_command_line</fox:label></fox:outline><fox:outline internal-destination="parse_config_file"><fox:label>Function template parse_config_file</fox:label></fox:outline><fox:outline internal-destination="id264411"><fox:label>Function parse_environment</fox:label></fox:outline><fox:outline internal-destination="id285434"><fox:label>Function parse_environment</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id420630"><fox:label>Header &lt;boost/program_options/positional_options.hpp&gt;</fox:label><fox:outline internal-destination="id277022"><fox:label>Class positional_options_description</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id391535"><fox:label>Header &lt;boost/program_options/value_semantic.hpp&gt;</fox:label><fox:outline internal-destination="value_semantic"><fox:label>Class value_semantic</fox:label></fox:outline><fox:outline internal-destination="id309957"><fox:label>Class template value_semantic_codecvt_helper</fox:label></fox:outline><fox:outline internal-destination="id361348-bb"><fox:label>Class value_semantic_codecvt_helper&lt;char&gt;</fox:label></fox:outline><fox:outline internal-destination="id410043-bb"><fox:label>Class value_semantic_codecvt_helper&lt;wchar_t&gt;</fox:label></fox:outline><fox:outline internal-destination="untyped_value"><fox:label>Class untyped_value</fox:label></fox:outline><fox:outline internal-destination="typed_value"><fox:label>Class template typed_value</fox:label></fox:outline><fox:outline internal-destination="value"><fox:label>Function value</fox:label></fox:outline><fox:outline internal-destination="wvalue"><fox:label>Function wvalue</fox:label></fox:outline><fox:outline internal-destination="bool_switch"><fox:label>Function bool_switch</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id361047"><fox:label>Header &lt;boost/program_options/variables_map.hpp&gt;</fox:label><fox:outline internal-destination="variable_value"><fox:label>Class variable_value</fox:label></fox:outline><fox:outline internal-destination="abstract_variables_map"><fox:label>Class abstract_variables_map</fox:label></fox:outline><fox:outline internal-destination="variables_map"><fox:label>Class variables_map</fox:label></fox:outline><fox:outline internal-destination="id281355"><fox:label>Function store</fox:label></fox:outline><fox:outline internal-destination="id386334"><fox:label>Function store</fox:label></fox:outline><fox:outline internal-destination="notify"><fox:label>Function notify</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id401803"><fox:label>Header &lt;boost/program_options/version.hpp&gt;</fox:label><fox:outline internal-destination="id401809"><fox:label>Macro BOOST_PROGRAM_OPTIONS_VERSION</fox:label></fox:outline></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="ref"><fox:label>Boost.Ref</fox:label><fox:outline internal-destination="ref.intro"><fox:label>Introduction</fox:label></fox:outline><fox:outline internal-destination="ref.reference"><fox:label>Reference</fox:label><fox:outline internal-destination="header.boost.ref.hpp"><fox:label>Header &lt;boost/ref.hpp&gt;</fox:label><fox:outline internal-destination="reference_wrapper"><fox:label>Class template reference_wrapper</fox:label></fox:outline><fox:outline internal-destination="is_reference_wrapper"><fox:label>Class template is_reference_wrapper</fox:label></fox:outline><fox:outline internal-destination="unwrap_reference"><fox:label>Class template unwrap_reference</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="ref.ack"><fox:label>Acknowledgements</fox:label></fox:outline></fox:outline><fox:outline internal-destination="signals"><fox:label>Boost.Signals</fox:label><fox:outline internal-destination="id541200"><fox:label>Introduction</fox:label></fox:outline><fox:outline internal-destination="signals.tutorial"><fox:label>Tutorial</fox:label><fox:outline internal-destination="id541262"><fox:label>How to Read this Tutorial</fox:label></fox:outline><fox:outline internal-destination="id541327"><fox:label>Compatibility Note</fox:label></fox:outline><fox:outline internal-destination="id541420"><fox:label>Hello, World! (Beginner)</fox:label></fox:outline><fox:outline internal-destination="id541554"><fox:label>Calling multiple slots</fox:label><fox:outline internal-destination="id541558"><fox:label>Connecting multiple slots (Beginner)</fox:label></fox:outline><fox:outline internal-destination="id541707"><fox:label>Ordering slot call groups (Intermediate)</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id541904"><fox:label>Passing values to and from slots</fox:label><fox:outline internal-destination="id541908"><fox:label>Slot Arguments (Beginner)</fox:label></fox:outline><fox:outline internal-destination="id542128"><fox:label>Signal Return Values (Advanced)</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id542714"><fox:label>Connection Management</fox:label><fox:outline internal-destination="id542718"><fox:label>Disconnecting Slots (Beginner)</fox:label></fox:outline><fox:outline internal-destination="id542836"><fox:label>Scoped connections (Intermediate)</fox:label></fox:outline><fox:outline internal-destination="id542882"><fox:label>Disconnecting equivalent slots (Intermediate)</fox:label></fox:outline><fox:outline internal-destination="id542947"><fox:label>Automatic connection management (Intermediate)</fox:label></fox:outline><fox:outline internal-destination="id543150"><fox:label>When can disconnections occur? (Intermediate)</fox:label></fox:outline><fox:outline internal-destination="id543217"><fox:label>Passing slots (Intermediate)</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id543351"><fox:label>Linking against the Signals library</fox:label></fox:outline></fox:outline><fox:outline internal-destination="signals.reference"><fox:label>Reference</fox:label><fox:outline internal-destination="header.boost.signal.hpp"><fox:label>Header &lt;boost/signal.hpp&gt;</fox:label><fox:outline internal-destination="signalN"><fox:label>Class template signalN</fox:label></fox:outline><fox:outline internal-destination="signal"><fox:label>Class template signal</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id341848"><fox:label>Header &lt;boost/signals/slot.hpp&gt;</fox:label><fox:outline internal-destination="slot"><fox:label>Class template slot</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id225819"><fox:label>Header &lt;boost/signals/trackable.hpp&gt;</fox:label><fox:outline internal-destination="trackable"><fox:label>Class trackable</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id490968"><fox:label>Header &lt;boost/signals/connection.hpp&gt;</fox:label><fox:outline internal-destination="connection"><fox:label>Class connection</fox:label></fox:outline><fox:outline internal-destination="scoped_connection"><fox:label>Class scoped_connection</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id234067"><fox:label>Header &lt;boost/visit_each.hpp&gt;</fox:label><fox:outline internal-destination="visit_each"><fox:label>Function template visit_each</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id236836"><fox:label>Header &lt;boost/last_value.hpp&gt;</fox:label><fox:outline internal-destination="last_value"><fox:label>Class template last_value</fox:label></fox:outline><fox:outline internal-destination="id429900-bb"><fox:label>Class last_value&lt;void&gt;</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="id548866"><fox:label>Frequently Asked Questions</fox:label></fox:outline><fox:outline internal-destination="id548972"><fox:label>Design Overview</fox:label><fox:outline internal-destination="id548982"><fox:label>Type Erasure</fox:label></fox:outline><fox:outline internal-destination="id549053"><fox:label>connection class</fox:label></fox:outline><fox:outline internal-destination="id549176"><fox:label>Slot Call Iterator</fox:label></fox:outline><fox:outline internal-destination="id549344"><fox:label>visit_each function template</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id549496"><fox:label>Design Rationale</fox:label><fox:outline internal-destination="id549506"><fox:label>Choice of Slot Definitions</fox:label></fox:outline><fox:outline internal-destination="id549596"><fox:label>User-level Connection Management</fox:label></fox:outline><fox:outline internal-destination="id549758"><fox:label>Combiner Interface</fox:label></fox:outline><fox:outline internal-destination="id549934"><fox:label>Connection Interfaces: += operator</fox:label></fox:outline><fox:outline internal-destination="id550109"><fox:label>trackable rationale</fox:label><fox:outline internal-destination="id550152"><fox:label>trackable copying behavior</fox:label></fox:outline><fox:outline internal-destination="id550217"><fox:label>Why derivation from trackable?</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id550292"><fox:label>Comparison with other Signal/Slot implementations</fox:label><fox:outline internal-destination="id550296"><fox:label>libsigc++</fox:label></fox:outline><fox:outline internal-destination="id550362"><fox:label>.NET delegates</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="signals.tests"><fox:label>Testsuite</fox:label><fox:outline internal-destination="id550410"><fox:label>Acceptance tests</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="string_algo"><fox:label>Boost String Algorithms Library</fox:label><fox:outline internal-destination="string_algo.intro"><fox:label>Introduction</fox:label></fox:outline><fox:outline internal-destination="string_algo.usage"><fox:label>Usage</fox:label><fox:outline internal-destination="id550844"><fox:label>First Example</fox:label></fox:outline><fox:outline internal-destination="id551052"><fox:label>Case conversion</fox:label></fox:outline><fox:outline internal-destination="id551104"><fox:label>Predicates and Classification</fox:label></fox:outline><fox:outline internal-destination="id551189"><fox:label>Trimming</fox:label></fox:outline><fox:outline internal-destination="id551249"><fox:label>Find algorithms</fox:label></fox:outline><fox:outline internal-destination="id551367"><fox:label>Replace Algorithms</fox:label></fox:outline><fox:outline internal-destination="id551484"><fox:label>Find Iterator</fox:label></fox:outline><fox:outline internal-destination="id551587"><fox:label>Split</fox:label></fox:outline></fox:outline><fox:outline internal-destination="string_algo.quickref"><fox:label>Quick Reference</fox:label><fox:outline internal-destination="id551727"><fox:label>Algorithms</fox:label></fox:outline><fox:outline internal-destination="id552984"><fox:label>Finders and Formatters</fox:label></fox:outline><fox:outline internal-destination="id553234"><fox:label>Iterators</fox:label></fox:outline><fox:outline internal-destination="id553290"><fox:label>Classification</fox:label></fox:outline></fox:outline><fox:outline internal-destination="string_algo.design"><fox:label>Design Topics</fox:label><fox:outline internal-destination="string_algo.string"><fox:label>String Representation</fox:label></fox:outline><fox:outline internal-destination="string_algo.iterator_range"><fox:label>iterator_range class</fox:label></fox:outline><fox:outline internal-destination="string_algo.collection_traits"><fox:label>Collection Traits</fox:label></fox:outline><fox:outline internal-destination="string_algo.sequence_traits"><fox:label>Sequence Traits</fox:label></fox:outline><fox:outline internal-destination="string_algo.find"><fox:label>Find Algorithms</fox:label></fox:outline><fox:outline internal-destination="string_algo.replace"><fox:label>Replace Algorithms</fox:label></fox:outline><fox:outline internal-destination="string_algo.split"><fox:label>Find Iterators &amp; Split Algorithms</fox:label></fox:outline><fox:outline internal-destination="string_algo.exception"><fox:label>Exception Safety</fox:label></fox:outline></fox:outline><fox:outline internal-destination="string_algo.concept"><fox:label>Concepts</fox:label><fox:outline internal-destination="id554583"><fox:label>Definitions</fox:label></fox:outline><fox:outline internal-destination="string_algo.finder_concept"><fox:label>Finder Concept</fox:label></fox:outline><fox:outline internal-destination="string_algo.formatter_concept"><fox:label>Formatter concept</fox:label></fox:outline></fox:outline><fox:outline internal-destination="string_algo.reference"><fox:label>Reference</fox:label><fox:outline internal-destination="id350445"><fox:label>Header &lt;boost/algorithm/string/case_conv.hpp&gt;</fox:label><fox:outline internal-destination="to_lower_copy"><fox:label>Function to_lower_copy</fox:label></fox:outline><fox:outline internal-destination="to_lower"><fox:label>Function template to_lower</fox:label></fox:outline><fox:outline internal-destination="to_upper_copy"><fox:label>Function to_upper_copy</fox:label></fox:outline><fox:outline internal-destination="to_upper"><fox:label>Function template to_upper</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id388523"><fox:label>Header &lt;boost/algorithm/string/classification.hpp&gt;</fox:label><fox:outline internal-destination="is_classified"><fox:label>Function is_classified</fox:label></fox:outline><fox:outline internal-destination="is_space"><fox:label>Function is_space</fox:label></fox:outline><fox:outline internal-destination="is_alnum"><fox:label>Function is_alnum</fox:label></fox:outline><fox:outline internal-destination="is_alpha"><fox:label>Function is_alpha</fox:label></fox:outline><fox:outline internal-destination="is_cntrl"><fox:label>Function is_cntrl</fox:label></fox:outline><fox:outline internal-destination="is_digit"><fox:label>Function is_digit</fox:label></fox:outline><fox:outline internal-destination="is_graph"><fox:label>Function is_graph</fox:label></fox:outline><fox:outline internal-destination="is_lower"><fox:label>Function is_lower</fox:label></fox:outline><fox:outline internal-destination="is_print"><fox:label>Function is_print</fox:label></fox:outline><fox:outline internal-destination="is_punct"><fox:label>Function is_punct</fox:label></fox:outline><fox:outline internal-destination="is_upper"><fox:label>Function is_upper</fox:label></fox:outline><fox:outline internal-destination="is_xdigit"><fox:label>Function is_xdigit</fox:label></fox:outline><fox:outline internal-destination="is_any_of"><fox:label>Function template is_any_of</fox:label></fox:outline><fox:outline internal-destination="is_from_range"><fox:label>Function template is_from_range</fox:label></fox:outline><fox:outline internal-destination="id504418"><fox:label>Function template operator&amp;&amp;</fox:label></fox:outline><fox:outline internal-destination="id354683"><fox:label>Function template operator||</fox:label></fox:outline><fox:outline internal-destination="id273455"><fox:label>Function template operator!</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id407166"><fox:label>Header &lt;boost/algorithm/string/collection_traits.hpp&gt;</fox:label><fox:outline internal-destination="collection_traits"><fox:label>Struct template collection_traits</fox:label></fox:outline><fox:outline internal-destination="value_type_of"><fox:label>Struct template value_type_of</fox:label></fox:outline><fox:outline internal-destination="difference_type_of"><fox:label>Struct template difference_type_of</fox:label></fox:outline><fox:outline internal-destination="iterator_of"><fox:label>Struct template iterator_of</fox:label></fox:outline><fox:outline internal-destination="const_iterator_of"><fox:label>Struct template const_iterator_of</fox:label></fox:outline><fox:outline internal-destination="result_iterator_of"><fox:label>Struct template result_iterator_of</fox:label></fox:outline><fox:outline internal-destination="size"><fox:label>Function template size</fox:label></fox:outline><fox:outline internal-destination="empty"><fox:label>Function template empty</fox:label></fox:outline><fox:outline internal-destination="begin"><fox:label>Function begin</fox:label></fox:outline><fox:outline internal-destination="end"><fox:label>Function end</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id266856"><fox:label>Header &lt;boost/algorithm/string/compare.hpp&gt;</fox:label><fox:outline internal-destination="is_equal"><fox:label>Struct is_equal</fox:label></fox:outline><fox:outline internal-destination="is_iequal"><fox:label>Struct is_iequal</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id336627"><fox:label>Header &lt;boost/algorithm/string/concept.hpp&gt;</fox:label><fox:outline internal-destination="FinderConcept"><fox:label>Struct template FinderConcept</fox:label></fox:outline><fox:outline internal-destination="FormatterConcept"><fox:label>Struct template FormatterConcept</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id228929"><fox:label>Header &lt;boost/algorithm/string/constants.hpp&gt;</fox:label><fox:outline internal-destination="id502269"><fox:label>Type token_compress_mode_type</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id236631"><fox:label>Header &lt;boost/algorithm/string/erase.hpp&gt;</fox:label><fox:outline internal-destination="erase_range_copy"><fox:label>Function erase_range_copy</fox:label></fox:outline><fox:outline internal-destination="erase_range"><fox:label>Function template erase_range</fox:label></fox:outline><fox:outline internal-destination="erase_first_copy"><fox:label>Function erase_first_copy</fox:label></fox:outline><fox:outline internal-destination="erase_first"><fox:label>Function template erase_first</fox:label></fox:outline><fox:outline internal-destination="ierase_first_copy"><fox:label>Function ierase_first_copy</fox:label></fox:outline><fox:outline internal-destination="ierase_first"><fox:label>Function template ierase_first</fox:label></fox:outline><fox:outline internal-destination="erase_last_copy"><fox:label>Function erase_last_copy</fox:label></fox:outline><fox:outline internal-destination="erase_last"><fox:label>Function template erase_last</fox:label></fox:outline><fox:outline internal-destination="ierase_last_copy"><fox:label>Function ierase_last_copy</fox:label></fox:outline><fox:outline internal-destination="ierase_last"><fox:label>Function template ierase_last</fox:label></fox:outline><fox:outline internal-destination="erase_nth_copy"><fox:label>Function erase_nth_copy</fox:label></fox:outline><fox:outline internal-destination="erase_nth"><fox:label>Function template erase_nth</fox:label></fox:outline><fox:outline internal-destination="ierase_nth_copy"><fox:label>Function ierase_nth_copy</fox:label></fox:outline><fox:outline internal-destination="ierase_nth"><fox:label>Function template ierase_nth</fox:label></fox:outline><fox:outline internal-destination="erase_all_copy"><fox:label>Function erase_all_copy</fox:label></fox:outline><fox:outline internal-destination="erase_all"><fox:label>Function template erase_all</fox:label></fox:outline><fox:outline internal-destination="ierase_all_copy"><fox:label>Function ierase_all_copy</fox:label></fox:outline><fox:outline internal-destination="ierase_all"><fox:label>Function template ierase_all</fox:label></fox:outline><fox:outline internal-destination="erase_head_copy"><fox:label>Function erase_head_copy</fox:label></fox:outline><fox:outline internal-destination="erase_head"><fox:label>Function template erase_head</fox:label></fox:outline><fox:outline internal-destination="erase_tail_copy"><fox:label>Function erase_tail_copy</fox:label></fox:outline><fox:outline internal-destination="erase_tail"><fox:label>Function template erase_tail</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id448104"><fox:label>Header &lt;boost/algorithm/string/find.hpp&gt;</fox:label><fox:outline internal-destination="find"><fox:label>Function template find</fox:label></fox:outline><fox:outline internal-destination="find_first"><fox:label>Function template find_first</fox:label></fox:outline><fox:outline internal-destination="ifind_first"><fox:label>Function template ifind_first</fox:label></fox:outline><fox:outline internal-destination="find_last"><fox:label>Function template find_last</fox:label></fox:outline><fox:outline internal-destination="ifind_last"><fox:label>Function template ifind_last</fox:label></fox:outline><fox:outline internal-destination="find_nth"><fox:label>Function template find_nth</fox:label></fox:outline><fox:outline internal-destination="ifind_nth"><fox:label>Function template ifind_nth</fox:label></fox:outline><fox:outline internal-destination="find_head"><fox:label>Function template find_head</fox:label></fox:outline><fox:outline internal-destination="find_tail"><fox:label>Function template find_tail</fox:label></fox:outline><fox:outline internal-destination="find_token"><fox:label>Function template find_token</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id333397"><fox:label>Header &lt;boost/algorithm/string/find_format.hpp&gt;</fox:label><fox:outline internal-destination="find_format_copy"><fox:label>Function find_format_copy</fox:label></fox:outline><fox:outline internal-destination="find_format"><fox:label>Function template find_format</fox:label></fox:outline><fox:outline internal-destination="find_format_all_copy"><fox:label>Function find_format_all_copy</fox:label></fox:outline><fox:outline internal-destination="find_format_all"><fox:label>Function template find_format_all</fox:label></fox:outline><fox:outline internal-destination="id363826"><fox:label>Function template regex_finder</fox:label></fox:outline><fox:outline internal-destination="id308968"><fox:label>Function template regex_formatter</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id254240"><fox:label>Header &lt;boost/algorithm/string/find_iterator.hpp&gt;</fox:label><fox:outline internal-destination="find_iterator"><fox:label>Class template find_iterator</fox:label></fox:outline><fox:outline internal-destination="split_iterator"><fox:label>Class template split_iterator</fox:label></fox:outline><fox:outline internal-destination="make_find_iterator"><fox:label>Function template make_find_iterator</fox:label></fox:outline><fox:outline internal-destination="make_split_iterator"><fox:label>Function template make_split_iterator</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id383225"><fox:label>Header &lt;boost/algorithm/string/finder.hpp&gt;</fox:label><fox:outline internal-destination="first_finder"><fox:label>Function first_finder</fox:label></fox:outline><fox:outline internal-destination="last_finder"><fox:label>Function last_finder</fox:label></fox:outline><fox:outline internal-destination="nth_finder"><fox:label>Function nth_finder</fox:label></fox:outline><fox:outline internal-destination="head_finder"><fox:label>Function head_finder</fox:label></fox:outline><fox:outline internal-destination="tail_finder"><fox:label>Function tail_finder</fox:label></fox:outline><fox:outline internal-destination="token_finder"><fox:label>Function template token_finder</fox:label></fox:outline><fox:outline internal-destination="range_finder"><fox:label>Function range_finder</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id267193"><fox:label>Header &lt;boost/algorithm/string/formatter.hpp&gt;</fox:label><fox:outline internal-destination="const_formatter"><fox:label>Function template const_formatter</fox:label></fox:outline><fox:outline internal-destination="identity_formatter"><fox:label>Function template identity_formatter</fox:label></fox:outline><fox:outline internal-destination="empty_formatter"><fox:label>Function template empty_formatter</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id365349"><fox:label>Header &lt;boost/algorithm/string/iterator_range.hpp&gt;</fox:label><fox:outline internal-destination="iterator_range"><fox:label>Class template iterator_range</fox:label></fox:outline><fox:outline internal-destination="id282639"><fox:label>Function template operator&lt;&lt;</fox:label></fox:outline><fox:outline internal-destination="id387885"><fox:label>Function template make_iterator_range</fox:label></fox:outline><fox:outline internal-destination="id370972"><fox:label>Function template make_iterator_range</fox:label></fox:outline><fox:outline internal-destination="copy_iterator_range"><fox:label>Function template copy_iterator_range</fox:label></fox:outline><fox:outline internal-destination="transform_iterator_range"><fox:label>Function template transform_iterator_range</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id366812"><fox:label>Header &lt;boost/algorithm/string/predicate.hpp&gt;</fox:label><fox:outline internal-destination="starts_with"><fox:label>Function starts_with</fox:label></fox:outline><fox:outline internal-destination="istarts_with"><fox:label>Function template istarts_with</fox:label></fox:outline><fox:outline internal-destination="ends_with"><fox:label>Function ends_with</fox:label></fox:outline><fox:outline internal-destination="iends_with"><fox:label>Function template iends_with</fox:label></fox:outline><fox:outline internal-destination="contains"><fox:label>Function contains</fox:label></fox:outline><fox:outline internal-destination="icontains"><fox:label>Function template icontains</fox:label></fox:outline><fox:outline internal-destination="equals"><fox:label>Function equals</fox:label></fox:outline><fox:outline internal-destination="iequals"><fox:label>Function template iequals</fox:label></fox:outline><fox:outline internal-destination="all"><fox:label>Function template all</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id326535"><fox:label>Header &lt;boost/algorithm/string/regex.hpp&gt;</fox:label><fox:outline internal-destination="find_regex"><fox:label>Function template find_regex</fox:label></fox:outline><fox:outline internal-destination="replace_regex_copy"><fox:label>Function replace_regex_copy</fox:label></fox:outline><fox:outline internal-destination="replace_regex"><fox:label>Function template replace_regex</fox:label></fox:outline><fox:outline internal-destination="replace_all_regex_copy"><fox:label>Function replace_all_regex_copy</fox:label></fox:outline><fox:outline internal-destination="replace_all_regex"><fox:label>Function template replace_all_regex</fox:label></fox:outline><fox:outline internal-destination="erase_regex_copy"><fox:label>Function erase_regex_copy</fox:label></fox:outline><fox:outline internal-destination="erase_regex"><fox:label>Function template erase_regex</fox:label></fox:outline><fox:outline internal-destination="erase_all_regex_copy"><fox:label>Function erase_all_regex_copy</fox:label></fox:outline><fox:outline internal-destination="erase_all_regex"><fox:label>Function template erase_all_regex</fox:label></fox:outline><fox:outline internal-destination="find_all_regex"><fox:label>Function template find_all_regex</fox:label></fox:outline><fox:outline internal-destination="split_regex"><fox:label>Function template split_regex</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id227790"><fox:label>Header &lt;boost/algorithm/string/regex_find_format.hpp&gt;</fox:label><fox:outline internal-destination="id333252"><fox:label>Function template regex_finder</fox:label></fox:outline><fox:outline internal-destination="id325454"><fox:label>Function template regex_formatter</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id439791"><fox:label>Header &lt;boost/algorithm/string/replace.hpp&gt;</fox:label><fox:outline internal-destination="replace_range_copy"><fox:label>Function replace_range_copy</fox:label></fox:outline><fox:outline internal-destination="replace_range"><fox:label>Function template replace_range</fox:label></fox:outline><fox:outline internal-destination="replace_first_copy"><fox:label>Function replace_first_copy</fox:label></fox:outline><fox:outline internal-destination="replace_first"><fox:label>Function template replace_first</fox:label></fox:outline><fox:outline internal-destination="ireplace_first_copy"><fox:label>Function ireplace_first_copy</fox:label></fox:outline><fox:outline internal-destination="ireplace_first"><fox:label>Function template ireplace_first</fox:label></fox:outline><fox:outline internal-destination="replace_last_copy"><fox:label>Function replace_last_copy</fox:label></fox:outline><fox:outline internal-destination="replace_last"><fox:label>Function template replace_last</fox:label></fox:outline><fox:outline internal-destination="ireplace_last_copy"><fox:label>Function ireplace_last_copy</fox:label></fox:outline><fox:outline internal-destination="ireplace_last"><fox:label>Function template ireplace_last</fox:label></fox:outline><fox:outline internal-destination="replace_nth_copy"><fox:label>Function replace_nth_copy</fox:label></fox:outline><fox:outline internal-destination="replace_nth"><fox:label>Function template replace_nth</fox:label></fox:outline><fox:outline internal-destination="ireplace_nth_copy"><fox:label>Function ireplace_nth_copy</fox:label></fox:outline><fox:outline internal-destination="ireplace_nth"><fox:label>Function template ireplace_nth</fox:label></fox:outline><fox:outline internal-destination="replace_all_copy"><fox:label>Function replace_all_copy</fox:label></fox:outline><fox:outline internal-destination="replace_all"><fox:label>Function template replace_all</fox:label></fox:outline><fox:outline internal-destination="ireplace_all_copy"><fox:label>Function ireplace_all_copy</fox:label></fox:outline><fox:outline internal-destination="ireplace_all"><fox:label>Function template ireplace_all</fox:label></fox:outline><fox:outline internal-destination="replace_head_copy"><fox:label>Function replace_head_copy</fox:label></fox:outline><fox:outline internal-destination="replace_head"><fox:label>Function template replace_head</fox:label></fox:outline><fox:outline internal-destination="replace_tail_copy"><fox:label>Function replace_tail_copy</fox:label></fox:outline><fox:outline internal-destination="replace_tail"><fox:label>Function template replace_tail</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id264095"><fox:label>Header &lt;boost/algorithm/string/sequence_traits.hpp&gt;</fox:label><fox:outline internal-destination="has_native_replace"><fox:label>Class template has_native_replace</fox:label></fox:outline><fox:outline internal-destination="has_stable_iterators"><fox:label>Class template has_stable_iterators</fox:label></fox:outline><fox:outline internal-destination="has_const_time_insert"><fox:label>Class template has_const_time_insert</fox:label></fox:outline><fox:outline internal-destination="has_const_time_erase"><fox:label>Class template has_const_time_erase</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id477625"><fox:label>Header &lt;boost/algorithm/string/split.hpp&gt;</fox:label><fox:outline internal-destination="find_all"><fox:label>Function template find_all</fox:label></fox:outline><fox:outline internal-destination="ifind_all"><fox:label>Function template ifind_all</fox:label></fox:outline><fox:outline internal-destination="id479732"><fox:label>Function template split</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id349546"><fox:label>Header &lt;boost/algorithm/string/std_containers_traits.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id299529"><fox:label>Header &lt;boost/algorithm/string.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id263316"><fox:label>Header &lt;boost/algorithm/string_regex.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id263327"><fox:label>Header &lt;boost/algorithm/string/trim.hpp&gt;</fox:label><fox:outline internal-destination="trim_left_copy_if"><fox:label>Function trim_left_copy_if</fox:label></fox:outline><fox:outline internal-destination="trim_left_copy"><fox:label>Function template trim_left_copy</fox:label></fox:outline><fox:outline internal-destination="trim_left_if"><fox:label>Function template trim_left_if</fox:label></fox:outline><fox:outline internal-destination="trim_left"><fox:label>Function template trim_left</fox:label></fox:outline><fox:outline internal-destination="trim_right_copy_if"><fox:label>Function trim_right_copy_if</fox:label></fox:outline><fox:outline internal-destination="trim_right_copy"><fox:label>Function template trim_right_copy</fox:label></fox:outline><fox:outline internal-destination="trim_right_if"><fox:label>Function template trim_right_if</fox:label></fox:outline><fox:outline internal-destination="trim_right"><fox:label>Function template trim_right</fox:label></fox:outline><fox:outline internal-destination="trim_copy_if"><fox:label>Function trim_copy_if</fox:label></fox:outline><fox:outline internal-destination="trim_copy"><fox:label>Function template trim_copy</fox:label></fox:outline><fox:outline internal-destination="trim_if"><fox:label>Function template trim_if</fox:label></fox:outline><fox:outline internal-destination="trim"><fox:label>Function template trim</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="string_algo.rationale"><fox:label>Rationale</fox:label><fox:outline internal-destination="id590829"><fox:label>Locales</fox:label></fox:outline><fox:outline internal-destination="string_algo.regex"><fox:label>Regular Expressions</fox:label></fox:outline></fox:outline><fox:outline internal-destination="string_algo.env"><fox:label>Environment</fox:label><fox:outline internal-destination="id590941"><fox:label>Build</fox:label></fox:outline><fox:outline internal-destination="id590962"><fox:label>Examples</fox:label></fox:outline><fox:outline internal-destination="id590975"><fox:label>Tests</fox:label></fox:outline><fox:outline internal-destination="id590986"><fox:label>Portability</fox:label></fox:outline></fox:outline><fox:outline internal-destination="string_algo.credits"><fox:label>Credits</fox:label><fox:outline internal-destination="string_algo.ack"><fox:label>Acknowledgments</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="threads"><fox:label>Boost.Threads</fox:label><fox:outline internal-destination="threads.overview"><fox:label>Overview</fox:label><fox:outline internal-destination="threads.introduction"><fox:label>Introduction</fox:label></fox:outline><fox:outline internal-destination="id591199"><fox:label>Dangers</fox:label><fox:outline internal-destination="id591203"><fox:label>General considerations</fox:label></fox:outline><fox:outline internal-destination="id591290"><fox:label>Testing and debugging considerations</fox:label></fox:outline><fox:outline internal-destination="id591331"><fox:label>Getting a head start</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id591397"><fox:label>C++ Standard Library usage in multithreaded programs</fox:label><fox:outline internal-destination="id591402"><fox:label>Runtime libraries</fox:label></fox:outline><fox:outline internal-destination="id591457"><fox:label>Potentially non-thread-safe functions</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id591558"><fox:label>Common guarantees for all Boost.Threads components</fox:label><fox:outline internal-destination="id591568"><fox:label>Exceptions</fox:label></fox:outline><fox:outline internal-destination="id591647"><fox:label>NonCopyable requirement</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="threads.design"><fox:label>Design</fox:label><fox:outline internal-destination="threads.design.goals"><fox:label>Goals</fox:label></fox:outline><fox:outline internal-destination="id591885"><fox:label>Iterative Phases</fox:label></fox:outline><fox:outline internal-destination="id591920"><fox:label>Phase 1, Synchronization Primitives</fox:label></fox:outline><fox:outline internal-destination="threads.design.phase2"><fox:label>Phase 2, Thread Management and Thread Specific Storage</fox:label></fox:outline><fox:outline internal-destination="id592079"><fox:label>The Next Phase</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.concepts"><fox:label>Concepts</fox:label><fox:outline internal-destination="threads.concepts.mutexes"><fox:label>Mutexes</fox:label><fox:outline internal-destination="threads.concepts.locking-strategies"><fox:label>Locking Strategies</fox:label><fox:outline internal-destination="threads.concepts.recursive-locking-strategy"><fox:label>Recursive Locking Strategy</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.checked-locking-strategy"><fox:label>Checked Locking Strategy</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.unchecked-locking-strategy"><fox:label>Unchecked Locking Strategy</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.unspecified-locking-strategy"><fox:label>Unspecified Locking Strategy</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.concepts.sheduling-policies"><fox:label>Scheduling Policies</fox:label><fox:outline internal-destination="threads.concepts.FIFO-scheduling-policy"><fox:label>FIFO Scheduling Policy</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.priority-driven-scheduling-policy"><fox:label>Priority Driven Policy</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.unspecified-scheduling-policy"><fox:label>Unspecified Policy</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.concepts.mutex-concepts"><fox:label>Mutex Concepts</fox:label><fox:outline internal-destination="threads.concepts.Mutex"><fox:label>Mutex Concept</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.TryMutex"><fox:label>TryMutex Concept</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.TimedMutex"><fox:label>TimedMutex Concept</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.concepts.mutex-models"><fox:label>Mutex Models</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.lock-concepts"><fox:label>Lock Concepts</fox:label><fox:outline internal-destination="threads.concepts.Lock"><fox:label>Lock Concept</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.ScopedLock"><fox:label>ScopedLock Concept</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.TryLock"><fox:label>TryLock Concept</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.ScopedTryLock"><fox:label>ScopedTryLock Concept</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.TimedLock"><fox:label>TimedLock Concept</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.ScopedTimedLock"><fox:label>ScopedTimedLock Concept</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.concepts.lock-models"><fox:label>Lock Models</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.concepts.read-write-mutexes"><fox:label>Read/Write Mutexes</fox:label><fox:outline internal-destination="threads.concepts.read-write-locking-strategies"><fox:label>Locking Strategies</fox:label><fox:outline internal-destination="threads.concepts.read-write-locking-strategies.recursive"><fox:label>Recursive Locking Strategy</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.read-write-locking-strategies.checked"><fox:label>Checked Locking Strategy</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.read-write-locking-strategies.unchecked"><fox:label>Unchecked Locking Strategy</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.read-write-locking-strategies.unspecified"><fox:label>Unspecified Locking Strategy</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.read-write-locking-strategies.thread-identification"><fox:label>Thread Identification</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.read-write-locking-strategies.promotion"><fox:label>Lock Promotion</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.read-write-locking-strategies.demotion"><fox:label>Lock Demotion</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.concepts.read-write-scheduling-policies"><fox:label>Scheduling Policies</fox:label><fox:outline internal-destination="threads.concepts.read-write-scheduling-policies.inter-class"><fox:label>Inter-Class Scheduling Policies</fox:label><fox:outline internal-destination="threads.concepts.read-write-scheduling-policies.reader-priority"><fox:label>ReaderPriority</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.read-write-scheduling-policies.writer-priority"><fox:label>WriterPriority</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.read-write-scheduling-policies.alternating-many-reads"><fox:label>AlternatingPriority/ManyReads</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.read-write-scheduling-policies.alternating-single-read"><fox:label>AlternatingPriority/SingleRead</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.concepts.read-write-scheduling-policies.intra-class"><fox:label>Intra-Class Scheduling Policies</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.concepts.read-write-mutex-concepts"><fox:label>Mutex Concepts</fox:label><fox:outline internal-destination="threads.concepts.ReadWriteMutex"><fox:label>ReadWriteMutex Concept</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.TryReadWriteMutex"><fox:label>TryReadWriteMutex Concept</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.TimedReadWriteMutex"><fox:label>TimedReadWriteMutex Concept</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.concepts.read-write-mutex-models"><fox:label>Mutex Models</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.read-write-lock-concepts"><fox:label>Lock Concepts</fox:label><fox:outline internal-destination="threads.concepts.ReadWriteLock"><fox:label>ReadWriteLock Concept</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.ScopedReadWriteLock"><fox:label>ScopedReadWriteLock Concept</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.TryReadWriteLock"><fox:label>TryReadWriteLock Expressions</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.ScopedTryReadWriteLock"><fox:label>ScopedTryReadWriteLock Expressions</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.TimedReadWriteLock"><fox:label>TimedReadWriteLock Concept</fox:label></fox:outline><fox:outline internal-destination="threads.concepts.ScopedTimedReadWriteLock"><fox:label>ScopedTimedReadWriteLock Concept</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.concepts.read-write-lock-models"><fox:label>Lock Models</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="threads.rationale"><fox:label>Rationale</fox:label><fox:outline internal-destination="threads.rationale.Boost.Threads"><fox:label>Rationale for the Creation of Boost.Threads</fox:label></fox:outline><fox:outline internal-destination="threads.rationale.primitives"><fox:label>Rationale for the Low Level Primitives Supported in Boost.Threads</fox:label></fox:outline><fox:outline internal-destination="threads.rationale.locks"><fox:label>Rationale for the Lock Design</fox:label></fox:outline><fox:outline internal-destination="threads.rationale.non-copyable"><fox:label>Rationale for NonCopyable Thread Type</fox:label><fox:outline internal-destination="threads.rationale.non-copyable.simple"><fox:label>1. Use case: Simple creation of a thread.</fox:label></fox:outline><fox:outline internal-destination="threads.rationale.non-copyable.joined"><fox:label>2. Use case: Creation of a thread that's later joined.</fox:label></fox:outline><fox:outline internal-destination="threads.rationale.non-copyable.loop"><fox:label>3. Use case: Simple creation of several threads in a loop.</fox:label></fox:outline><fox:outline internal-destination="threads.rationale.non-copyable.loop-join"><fox:label>4. Use case: Creation of several threads in a loop which are later joined.</fox:label></fox:outline><fox:outline internal-destination="threads.rationale.non-copyable.pass"><fox:label>5. Use case: Creation of a thread whose ownership is passed to another object/method.</fox:label></fox:outline><fox:outline internal-destination="threads.rationale.non-copyable.shared"><fox:label>6. Use case: Creation of a thread whose ownership is shared between multiple objects.</fox:label></fox:outline><fox:outline internal-destination="threads.rationale_comparison.non-copyable.simple"><fox:label>1. Comparison: simple creation of a thread.</fox:label></fox:outline><fox:outline internal-destination="threads.rationale_comparison.non-copyable.joined"><fox:label>2. Comparison: creation of a thread that's later joined.</fox:label></fox:outline><fox:outline internal-destination="threads.rationale_comparison.non-copyable.loop"><fox:label>3. Comparison: simple creation of several threads in a loop.</fox:label></fox:outline><fox:outline internal-destination="threads.rationale_comparison.non-copyable.loop-join"><fox:label>4. Comparison: creation of several threads in a loop which are later joined.</fox:label></fox:outline><fox:outline internal-destination="threads.rationale_comparison.non-copyable.pass"><fox:label>5. Comparison: creation of a thread whose ownership is passed to another object/method.</fox:label></fox:outline><fox:outline internal-destination="threads.rationale_comparison.non-copyable.shared"><fox:label>6. Comparison: creation of a thread whose ownership is shared between multiple objects.</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.rationale.events"><fox:label>Rationale for not providing Event Variables</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.reference"><fox:label>Reference</fox:label><fox:outline internal-destination="id470450"><fox:label>Header &lt;boost/thread/barrier.hpp&gt;</fox:label><fox:outline internal-destination="barrier"><fox:label>Class barrier</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id525796"><fox:label>Header &lt;boost/thread/condition.hpp&gt;</fox:label><fox:outline internal-destination="condition"><fox:label>Class condition</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id417361"><fox:label>Header &lt;boost/thread/exceptions.hpp&gt;</fox:label><fox:outline internal-destination="lock_error"><fox:label>Class lock_error</fox:label></fox:outline><fox:outline internal-destination="thread_resource_error"><fox:label>Class thread_resource_error</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id405534"><fox:label>Header &lt;boost/thread/mutex.hpp&gt;</fox:label><fox:outline internal-destination="mutex"><fox:label>Class mutex</fox:label></fox:outline><fox:outline internal-destination="try_mutex"><fox:label>Class try_mutex</fox:label></fox:outline><fox:outline internal-destination="timed_mutex"><fox:label>Class timed_mutex</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id485587"><fox:label>Header &lt;boost/thread/once.hpp&gt;</fox:label><fox:outline internal-destination="BOOST_ONCE_INIT"><fox:label>Macro BOOST_ONCE_INIT</fox:label></fox:outline><fox:outline internal-destination="call_once"><fox:label>Function call_once</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id462943"><fox:label>Header &lt;boost/thread/recursive_mutex.hpp&gt;</fox:label><fox:outline internal-destination="recursive_mutex"><fox:label>Class recursive_mutex</fox:label></fox:outline><fox:outline internal-destination="recursive_try_mutex"><fox:label>Class recursive_try_mutex</fox:label></fox:outline><fox:outline internal-destination="recursive_timed_mutex"><fox:label>Class recursive_timed_mutex</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id283850"><fox:label>Header &lt;boost/thread/read_write_mutex.hpp&gt;</fox:label><fox:outline internal-destination="id285973"><fox:label>Type read_write_scheduling_policy</fox:label></fox:outline><fox:outline internal-destination="read_write_mutex"><fox:label>Class read_write_mutex</fox:label></fox:outline><fox:outline internal-destination="try_read_write_mutex"><fox:label>Class try_read_write_mutex</fox:label></fox:outline><fox:outline internal-destination="timed_read_write_mutex"><fox:label>Class timed_read_write_mutex</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id277856"><fox:label>Header &lt;boost/thread/thread.hpp&gt;</fox:label><fox:outline internal-destination="thread"><fox:label>Class thread</fox:label></fox:outline><fox:outline internal-destination="thread_group"><fox:label>Class thread_group</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id479200"><fox:label>Header &lt;boost/thread/tss.hpp&gt;</fox:label><fox:outline internal-destination="thread_specific_ptr"><fox:label>Class thread_specific_ptr</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id253046"><fox:label>Header &lt;boost/thread/xtime.hpp&gt;</fox:label><fox:outline internal-destination="id451827"><fox:label>Type xtime_clock_types</fox:label></fox:outline><fox:outline internal-destination="xtime"><fox:label>Struct xtime</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="threads.faq"><fox:label>Frequently Asked Questions</fox:label></fox:outline><fox:outline internal-destination="thread.configuration"><fox:label>Configuration</fox:label><fox:outline internal-destination="thread.configuration.public"><fox:label>Library Defined Public Macros</fox:label></fox:outline><fox:outline internal-destination="thread.configuration.implementation"><fox:label>Library Defined Implementation Macros</fox:label></fox:outline></fox:outline><fox:outline internal-destination="thread.build"><fox:label>Build</fox:label><fox:outline internal-destination="thread.build.building"><fox:label>Building the Boost.Threads Libraries</fox:label></fox:outline><fox:outline internal-destination="thread.build.testing"><fox:label>Testing the Boost.Threads Libraries</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.implementation_notes"><fox:label>Implementation Notes</fox:label><fox:outline internal-destination="threads.implementation_notes.win32"><fox:label>Win32</fox:label></fox:outline></fox:outline><fox:outline internal-destination="threads.release_notes"><fox:label>Release Notes</fox:label><fox:outline internal-destination="threads.release_notes.boost_1_32_0"><fox:label>Boost 1.32.0</fox:label><fox:outline internal-destination="threads.release_notes.boost_1_32_0.change_log.documentation"><fox:label>Documentation converted to BoostBook</fox:label></fox:outline><fox:outline internal-destination="threads.release_notes.boost_1_32_0.change_log.static_link"><fox:label>Statically-link build option added</fox:label></fox:outline><fox:outline internal-destination="threads.release_notes.boost_1_32_0.change_log.barrier"><fox:label>Barrier functionality added</fox:label></fox:outline><fox:outline internal-destination="threads.release_notes.boost_1_32_0.change_log.read_write_mutex"><fox:label>Read/write mutex functionality added</fox:label></fox:outline><fox:outline internal-destination="threads.release_notes.boost_1_32_0.change_log.thread_specific_ptr"><fox:label>Thread-specific pointer functionality changed</fox:label></fox:outline><fox:outline internal-destination="threads.release_notes.boost_1_32_0.change_log.mutex"><fox:label>Mutex implementation changed for Win32</fox:label></fox:outline><fox:outline internal-destination="threads.release_notes.boost_1_32_0.change_log.wince"><fox:label>Windows CE support improved</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="threads.glossary"><fox:label>Glossary</fox:label><fox:outline internal-destination="id612059"><fox:label>Acknowledgements</fox:label></fox:outline></fox:outline><fox:outline internal-destination="thread.acknowledgements"><fox:label>Acknowledgements</fox:label></fox:outline><fox:outline internal-destination="threads.bibliography"><fox:label>Bibliography</fox:label></fox:outline></fox:outline><fox:outline internal-destination="tribool"><fox:label>Boost.Tribool</fox:label><fox:outline internal-destination="tribool.introduction"><fox:label>Introduction</fox:label></fox:outline><fox:outline internal-destination="tribool.tutorial"><fox:label>Tutorial</fox:label><fox:outline internal-destination="id612895"><fox:label>Basic usage</fox:label></fox:outline><fox:outline internal-destination="id613368"><fox:label>Renaming the indeterminate state</fox:label></fox:outline><fox:outline internal-destination="id613453"><fox:label>tribool input/output</fox:label></fox:outline></fox:outline><fox:outline internal-destination="tribool.reference"><fox:label>Reference</fox:label><fox:outline internal-destination="id442636"><fox:label>Header &lt;boost/logic/tribool.hpp&gt;</fox:label><fox:outline internal-destination="boost.logic.tribool"><fox:label>Class tribool</fox:label></fox:outline><fox:outline internal-destination="indeterminate"><fox:label>Function indeterminate</fox:label></fox:outline><fox:outline internal-destination="id268158"><fox:label>Function operator!</fox:label></fox:outline><fox:outline internal-destination="id217301"><fox:label>Function operator&amp;&amp;</fox:label></fox:outline><fox:outline internal-destination="id346259"><fox:label>Function operator||</fox:label></fox:outline><fox:outline internal-destination="id391666"><fox:label>Function operator==</fox:label></fox:outline><fox:outline internal-destination="id380697"><fox:label>Function operator!=</fox:label></fox:outline><fox:outline internal-destination="BOOST_TRIBOOL_THIRD_STATE"><fox:label>Macro BOOST_TRIBOOL_THIRD_STATE</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id506430"><fox:label>Header &lt;boost/logic/tribool_fwd.hpp&gt;</fox:label></fox:outline><fox:outline internal-destination="id267011"><fox:label>Header &lt;boost/logic/tribool_io.hpp&gt;</fox:label><fox:outline internal-destination="indeterminate_name"><fox:label>Class template indeterminate_name</fox:label></fox:outline><fox:outline internal-destination="id224510"><fox:label>Function template get_default_indeterminate_name</fox:label></fox:outline><fox:outline internal-destination="id495324"><fox:label>Function template operator&lt;&lt;</fox:label></fox:outline><fox:outline internal-destination="id269271"><fox:label>Function template operator&gt;&gt;</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="tribool.tests"><fox:label>Testsuite</fox:label><fox:outline internal-destination="tribool.tests.acceptance"><fox:label>Acceptance tests</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="variant"><fox:label>Boost.Variant</fox:label><fox:outline internal-destination="variant.intro"><fox:label>Introduction</fox:label><fox:outline internal-destination="variant.abstract"><fox:label>Abstract</fox:label></fox:outline><fox:outline internal-destination="variant.motivation"><fox:label>Motivation</fox:label><fox:outline internal-destination="variant.motivation.problem"><fox:label>Problem</fox:label></fox:outline><fox:outline internal-destination="variant.motivation.solution"><fox:label>Solution: A Motivating Example</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="variant.tutorial"><fox:label>Tutorial</fox:label><fox:outline internal-destination="variant.tutorial.basic"><fox:label>Basic Usage</fox:label></fox:outline><fox:outline internal-destination="variant.tutorial.advanced"><fox:label>Advanced Topics</fox:label><fox:outline internal-destination="variant.tutorial.preprocessor"><fox:label>Preprocessor macros</fox:label></fox:outline><fox:outline internal-destination="variant.tutorial.over-sequence"><fox:label>Using a type sequence to specify bounded types</fox:label></fox:outline><fox:outline internal-destination="variant.tutorial.recursive"><fox:label>Recursive variant types</fox:label><fox:outline internal-destination="variant.tutorial.recursive.recursive-wrapper"><fox:label>Recursive types with recursive_wrapper</fox:label></fox:outline><fox:outline internal-destination="variant.tutorial.recursive.recursive-variant"><fox:label>Recursive types with make_recursive_variant</fox:label></fox:outline></fox:outline><fox:outline internal-destination="variant.tutorial.binary-visitation"><fox:label>Binary visitation</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="variant.reference"><fox:label>Reference</fox:label><fox:outline internal-destination="variant.concepts"><fox:label>Concepts</fox:label><fox:outline internal-destination="variant.concepts.bounded-type"><fox:label>BoundedType</fox:label></fox:outline><fox:outline internal-destination="variant.concepts.static-visitor"><fox:label>StaticVisitor</fox:label><fox:outline internal-destination="variant.concepts.static-visitor.examples"><fox:label>Examples</fox:label></fox:outline></fox:outline><fox:outline internal-destination="variant.concepts.output-streamable"><fox:label>OutputStreamable</fox:label></fox:outline></fox:outline><fox:outline internal-destination="header.boost.variant.hpp"><fox:label>Header &lt;boost/variant.hpp&gt;</fox:label><fox:outline internal-destination="variant.header.include-all"><fox:label></fox:label></fox:outline></fox:outline><fox:outline internal-destination="id262208"><fox:label>Header &lt;boost/variant/variant_fwd.hpp&gt;</fox:label><fox:outline internal-destination="BOOST_VARIANT_LIMIT_TYPES"><fox:label>Macro BOOST_VARIANT_LIMIT_TYPES</fox:label></fox:outline><fox:outline internal-destination="BOOST_VARIANT_ENUM_PARAMS"><fox:label>Macro BOOST_VARIANT_ENUM_PARAMS</fox:label></fox:outline><fox:outline internal-destination="id238903"><fox:label>Macro BOOST_VARIANT_ENUM_SHIFTED_PARAMS</fox:label></fox:outline><fox:outline internal-destination="id509339"><fox:label>Macro BOOST_VARIANT_NO_REFERENCE_SUPPORT</fox:label></fox:outline><fox:outline internal-destination="id544182"><fox:label>Macro BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</fox:label></fox:outline><fox:outline internal-destination="id413934"><fox:label>Macro BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id516960"><fox:label>Header &lt;boost/variant/variant.hpp&gt;</fox:label><fox:outline internal-destination="boost.variant"><fox:label>Class template variant</fox:label></fox:outline><fox:outline internal-destination="id503912"><fox:label>Function template swap</fox:label></fox:outline><fox:outline internal-destination="id227095"><fox:label>Function template operator&lt;&lt;</fox:label></fox:outline><fox:outline internal-destination="make_variant_over"><fox:label>Class template make_variant_over</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id267452"><fox:label>Header &lt;boost/variant/recursive_variant.hpp&gt;</fox:label><fox:outline internal-destination="make_recursive_variant"><fox:label>Class template make_recursive_variant</fox:label></fox:outline><fox:outline internal-destination="id276892"><fox:label>Class template make_recursive_variant_over</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id352292"><fox:label>Header &lt;boost/variant/recursive_wrapper.hpp&gt;</fox:label><fox:outline internal-destination="recursive_wrapper"><fox:label>Class template recursive_wrapper</fox:label></fox:outline><fox:outline internal-destination="is_recursive_wrapper"><fox:label>Class template is_recursive_wrapper</fox:label></fox:outline><fox:outline internal-destination="unwrap_recursive_wrapper"><fox:label>Class template unwrap_recursive_wrapper</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id388564"><fox:label>Header &lt;boost/variant/apply_visitor.hpp&gt;</fox:label><fox:outline internal-destination="apply_visitor_delayed_t"><fox:label>Class template apply_visitor_delayed_t</fox:label></fox:outline><fox:outline internal-destination="apply_visitor"><fox:label>Function apply_visitor</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id446657"><fox:label>Header &lt;boost/variant/get.hpp&gt;</fox:label><fox:outline internal-destination="bad_get"><fox:label>Class bad_get</fox:label></fox:outline><fox:outline internal-destination="get"><fox:label>Function get</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id503352"><fox:label>Header &lt;boost/variant/bad_visit.hpp&gt;</fox:label><fox:outline internal-destination="bad_visit"><fox:label>Class bad_visit</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id382199"><fox:label>Header &lt;boost/variant/static_visitor.hpp&gt;</fox:label><fox:outline internal-destination="static_visitor"><fox:label>Class template static_visitor</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id500650"><fox:label>Header &lt;boost/variant/visitor_ptr.hpp&gt;</fox:label><fox:outline internal-destination="visitor_ptr_t"><fox:label>Class template visitor_ptr_t</fox:label></fox:outline><fox:outline internal-destination="visitor_ptr"><fox:label>Function template visitor_ptr</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="variant.design"><fox:label>Design Overview</fox:label><fox:outline internal-destination="variant.design.never-empty"><fox:label>"Never-Empty" Guarantee</fox:label><fox:outline internal-destination="variant.design.never-empty.guarantee"><fox:label>The Guarantee</fox:label></fox:outline><fox:outline internal-destination="variant.design.never-empty.problem"><fox:label>The Implementation Problem</fox:label></fox:outline><fox:outline internal-destination="variant.design.never-empty.memcpy-solution"><fox:label>The "Ideal" Solution: False Hopes</fox:label></fox:outline><fox:outline internal-destination="variant.design.never-empty.double-storage-solution"><fox:label>An Initial Solution: Double Storage</fox:label></fox:outline><fox:outline internal-destination="variant.design.never-empty.heap-backup-solution"><fox:label>Current Approach: Temporary Heap Backup</fox:label></fox:outline><fox:outline internal-destination="variant.design.never-empty.optimizations"><fox:label>Enabling Optimizations</fox:label></fox:outline><fox:outline internal-destination="variant.design.never-empty.roadmap"><fox:label>Future Direction: Policy-based Implementation</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="variant.misc"><fox:label>Miscellaneous Notes</fox:label><fox:outline internal-destination="variant.versus-any"><fox:label>Boost.Variant vs. Boost.Any</fox:label></fox:outline><fox:outline internal-destination="id630686"><fox:label>Portability</fox:label></fox:outline><fox:outline internal-destination="variant.troubleshooting"><fox:label>Troubleshooting</fox:label><fox:outline internal-destination="variant.troubleshooting.template-depth"><fox:label>"Template instantiation depth exceeds maximum"</fox:label><fox:outline internal-destination="variant.troubleshooting.template-depth.gcc"><fox:label>GNU GCC</fox:label></fox:outline></fox:outline><fox:outline internal-destination="variant.troubleshooting.compiler-memory"><fox:label>"Internal heap limit reached"</fox:label><fox:outline internal-destination="variant.troubleshooting.compiler-memory.msvc"><fox:label>Microsoft Visual C++</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="variant.ack"><fox:label>Acknowledgments</fox:label></fox:outline></fox:outline><fox:outline internal-destination="variant.refs"><fox:label>References</fox:label></fox:outline></fox:outline></fox:outline><fox:outline xmlns:fox="http://xml.apache.org/fop/extensions" internal-destination="boostbook"><fox:label>Part&#xA0;II.&#xA0;The BoostBook Documentation Format</fox:label><fox:outline internal-destination="id631415"><fox:label>Introduction</fox:label></fox:outline><fox:outline internal-destination="boostbook.getting.started"><fox:label>Getting Started</fox:label><fox:outline internal-destination="boostbook.docbook.config"><fox:label>Configuring local DocBook XSL and DTD distributions</fox:label></fox:outline><fox:outline internal-destination="boostbook.fop"><fox:label>Configuring Apache FOP for PostScript/PDF Output</fox:label></fox:outline><fox:outline internal-destination="boostbook.doxygen"><fox:label>Configuring Doxygen for Documentation Extraction</fox:label></fox:outline><fox:outline internal-destination="boostbook.troubleshooting"><fox:label>Troubleshooting</fox:label></fox:outline></fox:outline><fox:outline internal-destination="boostbook.documenting"><fox:label>Documenting libraries</fox:label><fox:outline internal-destination="boostbook.defining"><fox:label>Defining a BoostBook library</fox:label></fox:outline><fox:outline internal-destination="id632688"><fox:label>From HTML to BoostBook</fox:label></fox:outline><fox:outline internal-destination="boostbook.sectioning"><fox:label>Sectioning in BoostBook</fox:label></fox:outline></fox:outline><fox:outline internal-destination="boostbook.together"><fox:label>Bringing Together a BoostBook Document</fox:label><fox:outline internal-destination="boostbook.linking"><fox:label>Linking in BoostBook</fox:label></fox:outline></fox:outline><fox:outline internal-destination="reference"><fox:label>Reference</fox:label><fox:outline internal-destination="boostbook.dtd.class-specialization"><fox:label>BoostBook element class-specialization</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.link-test"><fox:label>BoostBook element link-test</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.link-fail-test"><fox:label>BoostBook element link-fail-test</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.typedef"><fox:label>BoostBook element typedef</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.static-constant"><fox:label>BoostBook element static-constant</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.code"><fox:label>BoostBook element code</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.destructor"><fox:label>BoostBook element destructor</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.template-type-parameter"><fox:label>BoostBook element template-type-parameter</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.description"><fox:label>BoostBook element description</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.librarylist"><fox:label>BoostBook element librarylist</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.library-reference"><fox:label>BoostBook element library-reference</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.boostbook"><fox:label>BoostBook element boostbook</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.union"><fox:label>BoostBook element union</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.inherit"><fox:label>BoostBook element inherit</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.template-varargs"><fox:label>BoostBook element template-varargs</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.source"><fox:label>BoostBook element source</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.function"><fox:label>BoostBook element function</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.postconditions"><fox:label>BoostBook element postconditions</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.compile-test"><fox:label>BoostBook element compile-test</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.method"><fox:label>BoostBook element method</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.snippet"><fox:label>BoostBook element snippet</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.constructor"><fox:label>BoostBook element constructor</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.namespace"><fox:label>BoostBook element namespace</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.if-fails"><fox:label>BoostBook element if-fails</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.free-function-group"><fox:label>BoostBook element free-function-group</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.functionname"><fox:label>BoostBook element functionname</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.librarycategory"><fox:label>BoostBook element librarycategory</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.notes"><fox:label>BoostBook element notes</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.data-member"><fox:label>BoostBook element data-member</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.specialization"><fox:label>BoostBook element specialization</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.union-specialization"><fox:label>BoostBook element union-specialization</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.throws"><fox:label>BoostBook element throws</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.template-arg"><fox:label>BoostBook element template-arg</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.method-group"><fox:label>BoostBook element method-group</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.requirement"><fox:label>BoostBook element requirement</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.precondition"><fox:label>BoostBook element precondition</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.paramtype"><fox:label>BoostBook element paramtype</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.using-class"><fox:label>BoostBook element using-class</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.run-test"><fox:label>BoostBook element run-test</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.librarypurpose"><fox:label>BoostBook element librarypurpose</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.copy-assignment"><fox:label>BoostBook element copy-assignment</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.run-fail-test"><fox:label>BoostBook element run-fail-test</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.template"><fox:label>BoostBook element template</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.compile-fail-test"><fox:label>BoostBook element compile-fail-test</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.returns"><fox:label>BoostBook element returns</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.default"><fox:label>BoostBook element default</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.parameter"><fox:label>BoostBook element parameter</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.signature"><fox:label>BoostBook element signature</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.overloaded-function"><fox:label>BoostBook element overloaded-function</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.class"><fox:label>BoostBook element class</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.librarycategorydef"><fox:label>BoostBook element librarycategorydef</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.type"><fox:label>BoostBook element type</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.enumvalue"><fox:label>BoostBook element enumvalue</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.overloaded-method"><fox:label>BoostBook element overloaded-method</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.programlisting"><fox:label>BoostBook element programlisting</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.complexity"><fox:label>BoostBook element complexity</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.purpose"><fox:label>BoostBook element purpose</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.template-nontype-parameter"><fox:label>BoostBook element template-nontype-parameter</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.library"><fox:label>BoostBook element library</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.librarycategorylist"><fox:label>BoostBook element librarycategorylist</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.using-namespace"><fox:label>BoostBook element using-namespace</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.struct-specialization"><fox:label>BoostBook element struct-specialization</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.struct"><fox:label>BoostBook element struct</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.lib"><fox:label>BoostBook element lib</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.enum"><fox:label>BoostBook element enum</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.requires"><fox:label>BoostBook element requires</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.effects"><fox:label>BoostBook element effects</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.libraryname"><fox:label>BoostBook element libraryname</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.libraryinfo"><fox:label>BoostBook element libraryinfo</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.testsuite"><fox:label>BoostBook element testsuite</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.header"><fox:label>BoostBook element header</fox:label></fox:outline><fox:outline internal-destination="boostbook.dtd.rationale"><fox:label>BoostBook element rationale</fox:label></fox:outline></fox:outline></fox:outline><fox:outline xmlns:fox="http://xml.apache.org/fop/extensions" internal-destination="bbv2"><fox:label>Part&#xA0;III.&#xA0;Boost.Build v2 User Manual</fox:label><fox:outline internal-destination="bbv2.howto"><fox:label>How to use this document</fox:label></fox:outline><fox:outline internal-destination="bbv2.installation"><fox:label>Installation</fox:label></fox:outline><fox:outline internal-destination="bbv2.tutorial"><fox:label>Tutorial</fox:label><fox:outline internal-destination="bbv2.tutorial.hello"><fox:label>Hello, world</fox:label></fox:outline><fox:outline internal-destination="bbv2.tutorial.properties"><fox:label>Properties</fox:label><fox:outline internal-destination="bbv2.tutorial.properties.requirements"><fox:label>Build Requests and Target Requirements</fox:label></fox:outline><fox:outline internal-destination="bbv2.tutorial.properties.project_attributes"><fox:label>Project Attributes</fox:label></fox:outline></fox:outline><fox:outline internal-destination="bbv2.tutorial.hierarchy"><fox:label>Project Hierarchies</fox:label></fox:outline><fox:outline internal-destination="bbv2.tutorial.libs"><fox:label>Libraries and Dependent Targets</fox:label></fox:outline><fox:outline internal-destination="bbv2.tutorial.depends"><fox:label>Library dependencies</fox:label></fox:outline><fox:outline internal-destination="bbv2.tutorial.linkage"><fox:label>Static and shared libaries</fox:label></fox:outline><fox:outline internal-destination="bbv2.tutorial.conditions"><fox:label>Conditions and alternatives</fox:label></fox:outline><fox:outline internal-destination="bbv2.tutorial.prebuilt"><fox:label>Prebuilt targets</fox:label></fox:outline></fox:outline><fox:outline internal-destination="bbv2.advanced"><fox:label>User documentation</fox:label><fox:outline internal-destination="bbv2.advanced.configuration"><fox:label>Configuration</fox:label></fox:outline><fox:outline internal-destination="bbv2.advanced.jamfiles"><fox:label>Writing Jamfiles</fox:label><fox:outline internal-destination="bbv2.advanced.overview"><fox:label>Overview</fox:label></fox:outline><fox:outline internal-destination="bbv2.advanced.targets"><fox:label>Main targets</fox:label></fox:outline><fox:outline internal-destination="bbv2.advanced.projects"><fox:label>Projects</fox:label></fox:outline><fox:outline internal-destination="bbv2.advanced.other-rules"><fox:label>Additional Jamfile rules</fox:label></fox:outline><fox:outline internal-destination="bbv2.advanced.project-root"><fox:label>Project root</fox:label></fox:outline></fox:outline><fox:outline internal-destination="bbv2.advanced.build_process"><fox:label>Build process</fox:label><fox:outline internal-destination="id647047"><fox:label>Build request</fox:label></fox:outline><fox:outline internal-destination="id647094"><fox:label>Building a main target</fox:label></fox:outline><fox:outline internal-destination="id647228"><fox:label>Building a project</fox:label></fox:outline></fox:outline><fox:outline internal-destination="bbv2.advanced.builtins.targets"><fox:label>Builtin target types</fox:label><fox:outline internal-destination="id647292"><fox:label>Programs</fox:label></fox:outline><fox:outline internal-destination="id647361"><fox:label>Libraries</fox:label></fox:outline><fox:outline internal-destination="bbv2.builtins.alias"><fox:label>Alias</fox:label></fox:outline><fox:outline internal-destination="bbv2.builtins.stage"><fox:label>Installing</fox:label></fox:outline><fox:outline internal-destination="bbv2.builtins.testing"><fox:label>Testing</fox:label></fox:outline></fox:outline><fox:outline internal-destination="bbv2.advanced.builtins.features"><fox:label>Builtin features</fox:label></fox:outline><fox:outline internal-destination="bbv2.advanced.differences_to_v1"><fox:label>Differences to Boost.Build V1</fox:label><fox:outline internal-destination="bbv2.advanced.differences_to_v1.configuration"><fox:label>Configuration</fox:label></fox:outline><fox:outline internal-destination="bbv2.advanced.differences_to_v1.jamfiles"><fox:label>Writing Jamfiles</fox:label></fox:outline><fox:outline internal-destination="bbv2.advanced.differences_to_v1.build_process"><fox:label>Build process</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="bbv2.extender"><fox:label>Extender Manual</fox:label><fox:outline internal-destination="bbv2.extender.intro"><fox:label>Introduction</fox:label></fox:outline><fox:outline internal-destination="bbv2.extending.targets"><fox:label>Target types</fox:label><fox:outline internal-destination="bbv2.extending.scanners"><fox:label>Scanners</fox:label></fox:outline></fox:outline><fox:outline internal-destination="bbv2.extending.tools"><fox:label>Tools and generators</fox:label></fox:outline><fox:outline internal-destination="bbv2.extending.features"><fox:label>Features</fox:label></fox:outline><fox:outline internal-destination="bbv2.extending.rules"><fox:label>Main target rules</fox:label></fox:outline><fox:outline internal-destination="bbv2.extending.toolset_modules"><fox:label>Toolset modules</fox:label></fox:outline></fox:outline><fox:outline internal-destination="bbv2.reference"><fox:label>Detailed reference</fox:label><fox:outline internal-destination="bbv2.reference.general"><fox:label>General information</fox:label><fox:outline internal-destination="bbv2.reference.init"><fox:label>Initialization</fox:label></fox:outline><fox:outline internal-destination="bbv2.reference.commandline"><fox:label>Command line</fox:label><fox:outline internal-destination="bbv2.reference.init.args"><fox:label>Command line arguments</fox:label></fox:outline><fox:outline internal-destination="bbv2.reference.init.options"><fox:label>Command line options</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="bbv2.reference.jamfiles"><fox:label>Writing Jamfiles</fox:label><fox:outline internal-destination="bbv2.reference.headers"><fox:label>Generated headers</fox:label></fox:outline></fox:outline><fox:outline internal-destination="bbv2.reference.buildprocess"><fox:label>Build process</fox:label><fox:outline internal-destination="bbv2.reference.buildprocess.alternatives"><fox:label>Alternative selection</fox:label></fox:outline><fox:outline internal-destination="bbv2.reference.buildprocess.common"><fox:label>Determining common properties</fox:label></fox:outline></fox:outline><fox:outline internal-destination="bbv2.reference.definitions"><fox:label></fox:label><fox:outline internal-destination="bbv2.reference.features"><fox:label>Features and properties</fox:label><fox:outline internal-destination="bbv2.reference.features.validity"><fox:label>Property Validity</fox:label></fox:outline><fox:outline internal-destination="bbv2.reference.features.attributes"><fox:label>Feature Attributes</fox:label></fox:outline><fox:outline internal-destination="bbv2.reference.features.declaration"><fox:label>Feature Declaration</fox:label></fox:outline></fox:outline><fox:outline internal-destination="bbv2.reference.variants"><fox:label>Build Variants</fox:label></fox:outline><fox:outline internal-destination="bbv2.reference.variants.proprefine"><fox:label>Property refinement</fox:label></fox:outline><fox:outline internal-destination="bbv2.reference.variants.propcond"><fox:label>Conditional properties</fox:label></fox:outline><fox:outline internal-destination="bbv2.reference.ids"><fox:label>Target identifiers and references</fox:label></fox:outline></fox:outline><fox:outline internal-destination="bbv2.reference.generators"><fox:label>Generators</fox:label><fox:outline internal-destination="id651373"><fox:label>Selecting and ranking viable generators</fox:label></fox:outline><fox:outline internal-destination="id651424"><fox:label>Running generators</fox:label></fox:outline><fox:outline internal-destination="id651466"><fox:label>Selecting dependency graph</fox:label></fox:outline><fox:outline internal-destination="id651478"><fox:label>Property adjustment</fox:label></fox:outline><fox:outline internal-destination="id651542"><fox:label>Transformations cache</fox:label></fox:outline></fox:outline></fox:outline><fox:outline internal-destination="bbv2.faq"><fox:label>Frequently Asked Questions</fox:label><fox:outline internal-destination="id651567"><fox:label>I'm getting "Duplicate name of actual target" error. What does it mean?</fox:label></fox:outline><fox:outline internal-destination="id651656"><fox:label>Accessing environment variables</fox:label></fox:outline><fox:outline internal-destination="id651695"><fox:label>How to control properties order?</fox:label></fox:outline><fox:outline internal-destination="id651742"><fox:label>How to control the library order on Unix?</fox:label></fox:outline><fox:outline internal-destination="bbv2.faq.external"><fox:label>Can I get output of external program as a variable in a Jamfile?</fox:label></fox:outline><fox:outline internal-destination="id651833"><fox:label>How to get the project-root location?</fox:label></fox:outline><fox:outline internal-destination="id651855"><fox:label>How to change compilation flags for one file?</fox:label></fox:outline><fox:outline internal-destination="bbv2.faq.dll-path"><fox:label>Why are the dll-path and hardcode-dll-paths properties useful?</fox:label></fox:outline><fox:outline internal-destination="bbv2.recipies.site-config"><fox:label>Targets in site-config.jam</fox:label></fox:outline></fox:outline><fox:outline internal-destination="bbv2.arch"><fox:label>Appendix&#xA0;B.&#xA0;Boost.Build v2 architecture</fox:label><fox:outline internal-destination="bbv2.arch.overview"><fox:label>Overview</fox:label></fox:outline><fox:outline internal-destination="bbv2.arch.build"><fox:label>The build layer</fox:label></fox:outline><fox:outline internal-destination="bbv2.arch.tools"><fox:label>The tools layer</fox:label></fox:outline><fox:outline internal-destination="bbv2.arch.targets"><fox:label>Targets</fox:label><fox:outline internal-destination="bbv2.arch.depends"><fox:label>Dependency scanning</fox:label><fox:outline internal-destination="id652390"><fox:label>Support for different scanning algorithms</fox:label></fox:outline><fox:outline internal-destination="id652400"><fox:label>Ability to scan the same file several times</fox:label></fox:outline><fox:outline internal-destination="id652462"><fox:label>Proper detection of dependencies on generated files.</fox:label></fox:outline><fox:outline internal-destination="id652642"><fox:label>Proper detection of dependencies from generated files</fox:label><fox:outline internal-destination="id652750"><fox:label>File targets</fox:label><fox:outline internal-destination="id652771"><fox:label>Types</fox:label></fox:outline></fox:outline><fox:outline internal-destination="id652788"><fox:label>Target paths</fox:label></fox:outline></fox:outline></fox:outline></fox:outline></fox:outline></fox:outline><fo:page-sequence hyphenate="true" master-reference="titlepage" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"/></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"/></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="id96888"><fo:block><fo:block><fo:block font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" hyphenate="false">The Boost C++ Libraries</fo:block></fo:block></fo:block><fo:block><fo:block break-after="page"/><fo:block font-size="14.4pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block>The Boost C++ Libraries</fo:block></fo:block></fo:block><fo:block break-after="page"/></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence hyphenate="true" master-reference="lot" language="en" format="i" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>The Boost C++ Libraries</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>The Boost C++ Libraries</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="toc...id96888" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">Table of Contents</fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="libraries">I. The Boost C++ Libraries</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="libraries"><fo:page-number-citation ref-id="libraries"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.libraries" start-indent="24pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="any">Boost.Any</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="any"><fo:page-number-citation ref-id="any"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.any" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id422258">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id422258"><fo:page-number-citation ref-id="id422258"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id422419">Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id422419"><fo:page-number-citation ref-id="id422419"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="any.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="any.reference"><fo:page-number-citation ref-id="any.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.any.reference" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="any.ValueType"><fo:inline font-style="italic">ValueType</fo:inline> requirements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="any.ValueType"><fo:page-number-citation ref-id="any.ValueType"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="header.boost.any.hpp">Header &lt;boost/any.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="header.boost.any.hpp"><fo:page-number-citation ref-id="header.boost.any.hpp"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id424278">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id424278"><fo:page-number-citation ref-id="id424278"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="array">Boost.Array</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="array"><fo:page-number-citation ref-id="array"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.array" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="array.intro">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="array.intro"><fo:page-number-citation ref-id="array.intro"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="array.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="array.reference"><fo:page-number-citation ref-id="array.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.array.reference" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="header.boost.array.hpp">Header &lt;boost/array.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="header.boost.array.hpp"><fo:page-number-citation ref-id="header.boost.array.hpp"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="array.rationale">Design Rationale</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="array.rationale"><fo:page-number-citation ref-id="array.rationale"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="array.more.info">For more information...</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="array.more.info"><fo:page-number-citation ref-id="array.more.info"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="array.ack">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="array.ack"><fo:page-number-citation ref-id="array.ack"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time">Boost.Date_Time</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time"><fo:page-number-citation ref-id="date_time"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.date_time" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.intro"/></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.intro"><fo:page-number-citation ref-id="date_time.intro"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.conceptual">Conceptual</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.conceptual"><fo:page-number-citation ref-id="date_time.conceptual"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.date_time.conceptual" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="Motivation">Motivation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="Motivation"><fo:page-number-citation ref-id="Motivation"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.domain_concepts">Domain Concepts</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.domain_concepts"><fo:page-number-citation ref-id="date_time.domain_concepts"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.design_concepts">Design Concepts</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.design_concepts"><fo:page-number-citation ref-id="date_time.design_concepts"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.conceptual.more_info">More Information</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.conceptual.more_info"><fo:page-number-citation ref-id="date_time.conceptual.more_info"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian">Gregorian</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian"><fo:page-number-citation ref-id="date_time.gregorian"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.date_time.gregorian" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.date_class">Date Class</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.date_class"><fo:page-number-citation ref-id="date_time.gregorian.date_class"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.date_duration">Date Duration (aka Days)</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.date_duration"><fo:page-number-citation ref-id="date_time.gregorian.date_duration"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.date_period">Date Period</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.date_period"><fo:page-number-citation ref-id="date_time.gregorian.date_period"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.date_iterators">Date Iterators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.date_iterators"><fo:page-number-citation ref-id="date_time.gregorian.date_iterators"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.date_algorithms">Date Generators/Algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.date_algorithms"><fo:page-number-citation ref-id="date_time.gregorian.date_algorithms"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.gregorian_calendar">Gregorian Calendar</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.gregorian_calendar"><fo:page-number-citation ref-id="date_time.gregorian.gregorian_calendar"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.day_clock_class">Class day_clock</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.day_clock_class"><fo:page-number-citation ref-id="date_time.gregorian.day_clock_class"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.posix_time">Posix Time</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.posix_time"><fo:page-number-citation ref-id="date_time.posix_time"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.date_time.posix_time" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.posix_time.ptime_class">Ptime Class</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.posix_time.ptime_class"><fo:page-number-citation ref-id="date_time.posix_time.ptime_class"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.posix_time.time_duration">Time Duration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.posix_time.time_duration"><fo:page-number-citation ref-id="date_time.posix_time.time_duration"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.posix_time.time_period">Time Period</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.posix_time.time_period"><fo:page-number-citation ref-id="date_time.posix_time.time_period"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.posix_time.time_iterators">Time Iterators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.posix_time.time_iterators"><fo:page-number-citation ref-id="date_time.posix_time.time_iterators"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.posix_time.local_time_adjust">Local Time Adjustment</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.posix_time.local_time_adjust"><fo:page-number-citation ref-id="date_time.posix_time.local_time_adjust"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.details">Details</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.details"><fo:page-number-citation ref-id="date_time.details"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.date_time.details" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.calculations">Calculations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.calculations"><fo:page-number-citation ref-id="date_time.calculations"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.design_goals">Design Goals</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.design_goals"><fo:page-number-citation ref-id="date_time.design_goals"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.tradeoffs">Tradeoffs: Stability, Predictability, and Approximations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.tradeoffs"><fo:page-number-citation ref-id="date_time.tradeoffs"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.serialization">Serialization</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.serialization"><fo:page-number-citation ref-id="date_time.serialization"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.terminology">Terminology</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.terminology"><fo:page-number-citation ref-id="date_time.terminology"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.references">References</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.references"><fo:page-number-citation ref-id="date_time.references"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.buildinfo">Build-Compiler Information</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.buildinfo"><fo:page-number-citation ref-id="date_time.buildinfo"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.tests">Tests</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.tests"><fo:page-number-citation ref-id="date_time.tests"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.changes">Change History</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.changes"><fo:page-number-citation ref-id="date_time.changes"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.acknowledgements">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.acknowledgements"><fo:page-number-citation ref-id="date_time.acknowledgements"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples">Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples"><fo:page-number-citation ref-id="date_time.examples"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.date_time.examples" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.general_usage_examples">General Usage Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.general_usage_examples"><fo:page-number-citation ref-id="date_time.examples.general_usage_examples"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.dates_as_strings">Dates as Strings</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.dates_as_strings"><fo:page-number-citation ref-id="date_time.examples.dates_as_strings"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.days_alive">Days Alive</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.days_alive"><fo:page-number-citation ref-id="date_time.examples.days_alive"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.days_between_new_year">Days Between New Years</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.days_between_new_year"><fo:page-number-citation ref-id="date_time.examples.days_between_new_year"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.end_of_month_day">End of the Months</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.end_of_month_day"><fo:page-number-citation ref-id="date_time.examples.end_of_month_day"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.localization">Localization Demonstration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.localization"><fo:page-number-citation ref-id="date_time.examples.localization"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.date_period_calc">Date Period Calculations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.date_period_calc"><fo:page-number-citation ref-id="date_time.examples.date_period_calc"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.print_holidays">Print Holidays</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.print_holidays"><fo:page-number-citation ref-id="date_time.examples.print_holidays"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.print_month">Print Month</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.print_month"><fo:page-number-citation ref-id="date_time.examples.print_month"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.month_add">Month Adding</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.month_add"><fo:page-number-citation ref-id="date_time.examples.month_add"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.time_math">Time Math</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.time_math"><fo:page-number-citation ref-id="date_time.examples.time_math"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.print_hours">Print Hours</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.print_hours"><fo:page-number-citation ref-id="date_time.examples.print_hours"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.local_utc_conversion">Local to UTC Conversion</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.local_utc_conversion"><fo:page-number-citation ref-id="date_time.examples.local_utc_conversion"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.time_periods">Time Periods</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.time_periods"><fo:page-number-citation ref-id="date_time.examples.time_periods"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.doxy">Library Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.doxy"><fo:page-number-citation ref-id="date_time.doxy"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.date_time.doxy" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time_reference">Date Time Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time_reference"><fo:page-number-citation ref-id="date_time_reference"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="gregorian_reference">Gregorian Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="gregorian_reference"><fo:page-number-citation ref-id="gregorian_reference"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="posix_time_reference">Posix Time Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="posix_time_reference"><fo:page-number-citation ref-id="posix_time_reference"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function">Boost.Function</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function"><fo:page-number-citation ref-id="function"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.function" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.intro">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.intro"><fo:page-number-citation ref-id="function.intro"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.history">History &amp; Compatibility Notes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.history"><fo:page-number-citation ref-id="function.history"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.tutorial">Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.tutorial"><fo:page-number-citation ref-id="function.tutorial"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.function.tutorial" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id501106">Basic Usage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id501106"><fo:page-number-citation ref-id="id501106"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id501416">Free functions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id501416"><fo:page-number-citation ref-id="id501416"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id501448">Member functions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id501448"><fo:page-number-citation ref-id="id501448"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id501610">References to Function Objects</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id501610"><fo:page-number-citation ref-id="id501610"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id501758">Comparing Boost.Function function objects</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id501758"><fo:page-number-citation ref-id="id501758"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.reference"><fo:page-number-citation ref-id="function.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.function.reference" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.definitions">Definitions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.definitions"><fo:page-number-citation ref-id="function.definitions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="header.boost.function.hpp">Header &lt;boost/function.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="header.boost.function.hpp"><fo:page-number-citation ref-id="header.boost.function.hpp"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id330862">Header &lt;boost/function_equal.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id330862"><fo:page-number-citation ref-id="id330862"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.faq">Frequently Asked Questions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.faq"><fo:page-number-citation ref-id="function.faq"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.misc">Miscellaneous Notes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.misc"><fo:page-number-citation ref-id="function.misc"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.function.misc" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id513618">Boost.Function vs. Function Pointers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id513618"><fo:page-number-citation ref-id="id513618"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id513673">Performance</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id513673"><fo:page-number-citation ref-id="id513673"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id513718">Combatting virtual function "bloat"</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id513718"><fo:page-number-citation ref-id="id513718"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id513755">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id513755"><fo:page-number-citation ref-id="id513755"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.testsuite">Testsuite</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.testsuite"><fo:page-number-citation ref-id="function.testsuite"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.function.testsuite" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.testsuite.acceptance">Acceptance tests</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.testsuite.acceptance"><fo:page-number-citation ref-id="function.testsuite.acceptance"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.testsuite.negative">Negative tests</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.testsuite.negative"><fo:page-number-citation ref-id="function.testsuite.negative"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda">Boost.Lambda</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda"><fo:page-number-citation ref-id="lambda"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.lambda" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="introduction">In a nutshell</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="introduction"><fo:page-number-citation ref-id="introduction"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.getting_started">Getting Started</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.getting_started"><fo:page-number-citation ref-id="lambda.getting_started"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.lambda.getting_started" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id514454">Installing the library</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id514454"><fo:page-number-citation ref-id="id514454"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id514750">Conventions used in this document</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id514750"><fo:page-number-citation ref-id="id514750"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id514778">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id514778"><fo:page-number-citation ref-id="id514778"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.id514778" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id514782">Motivation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id514782"><fo:page-number-citation ref-id="id514782"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id515056">Introduction to lambda expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id515056"><fo:page-number-citation ref-id="id515056"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.using_library">Using the library</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.using_library"><fo:page-number-citation ref-id="lambda.using_library"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.lambda.using_library" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.introductory_examples">Introductory Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.introductory_examples"><fo:page-number-citation ref-id="lambda.introductory_examples"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.parameter_and_return_types">Parameter and return types of lambda functors</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.parameter_and_return_types"><fo:page-number-citation ref-id="lambda.parameter_and_return_types"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.actual_arguments_to_lambda_functors">About actual arguments to lambda functors</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.actual_arguments_to_lambda_functors"><fo:page-number-citation ref-id="lambda.actual_arguments_to_lambda_functors"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.storing_bound_arguments">Storing bound arguments in lambda functions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.storing_bound_arguments"><fo:page-number-citation ref-id="lambda.storing_bound_arguments"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.le_in_details">Lambda expressions in details</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.le_in_details"><fo:page-number-citation ref-id="lambda.le_in_details"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.lambda.le_in_details" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.placeholders">Placeholders</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.placeholders"><fo:page-number-citation ref-id="lambda.placeholders"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.operator_expressions">Operator expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.operator_expressions"><fo:page-number-citation ref-id="lambda.operator_expressions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.bind_expressions">Bind expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.bind_expressions"><fo:page-number-citation ref-id="lambda.bind_expressions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.overriding_deduced_return_type">Overriding the deduced return type</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.overriding_deduced_return_type"><fo:page-number-citation ref-id="lambda.overriding_deduced_return_type"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.delaying_constants_and_variables">Delaying constants and variables</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.delaying_constants_and_variables"><fo:page-number-citation ref-id="lambda.delaying_constants_and_variables"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.lambda_expressions_for_control_structures">Lambda expressions for control structures</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.lambda_expressions_for_control_structures"><fo:page-number-citation ref-id="lambda.lambda_expressions_for_control_structures"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.exceptions">Exceptions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.exceptions"><fo:page-number-citation ref-id="lambda.exceptions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.construction_and_destruction">Construction and destruction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.construction_and_destruction"><fo:page-number-citation ref-id="lambda.construction_and_destruction"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id518957">Special lambda expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id518957"><fo:page-number-citation ref-id="id518957"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id519440">Casts, sizeof and typeid</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id519440"><fo:page-number-citation ref-id="id519440"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.nested_stl_algorithms">Nesting STL algorithm invocations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.nested_stl_algorithms"><fo:page-number-citation ref-id="lambda.nested_stl_algorithms"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.extending">Extending return type deduction system</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.extending"><fo:page-number-citation ref-id="lambda.extending"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id521347">Practical considerations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id521347"><fo:page-number-citation ref-id="id521347"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.id521347" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id521351">Performance</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id521351"><fo:page-number-citation ref-id="id521351"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id521682">About compiling</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id521682"><fo:page-number-citation ref-id="id521682"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id521720">Portability</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id521720"><fo:page-number-citation ref-id="id521720"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id521979">Relation to other Boost libraries</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id521979"><fo:page-number-citation ref-id="id521979"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.id521979" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id521983">Boost Function</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id521983"><fo:page-number-citation ref-id="id521983"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id522068">Boost Bind</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id522068"><fo:page-number-citation ref-id="id522068"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id522202">Contributors</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id522202"><fo:page-number-citation ref-id="id522202"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options">Boost.Program_options</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options"><fo:page-number-citation ref-id="program_options"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.program_options" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id522718">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id522718"><fo:page-number-citation ref-id="id522718"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options.tutorial">Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options.tutorial"><fo:page-number-citation ref-id="program_options.tutorial"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.program_options.tutorial" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id522798">Getting Started</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id522798"><fo:page-number-citation ref-id="id522798"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id522935">Option Details</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id522935"><fo:page-number-citation ref-id="id522935"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id523095">Multiple Sources</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id523095"><fo:page-number-citation ref-id="id523095"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options.overview">Library Overview</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options.overview"><fo:page-number-citation ref-id="program_options.overview"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.program_options.overview" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id523322">Options Description Component</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id523322"><fo:page-number-citation ref-id="id523322"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id523727">Parsers Component</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id523727"><fo:page-number-citation ref-id="id523727"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id523804">Storage Component</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id523804"><fo:page-number-citation ref-id="id523804"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id523895">Annotated List of Symbols</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id523895"><fo:page-number-citation ref-id="id523895"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options.howto">How To</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options.howto"><fo:page-number-citation ref-id="program_options.howto"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.program_options.howto" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524031">Non-conventional Syntax</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524031"><fo:page-number-citation ref-id="id524031"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524089">Response Files</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524089"><fo:page-number-citation ref-id="id524089"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524170">Winmain Command Line</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524170"><fo:page-number-citation ref-id="id524170"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524211">Option Groups and Hidden Options</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524211"><fo:page-number-citation ref-id="id524211"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524344">Custom Validators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524344"><fo:page-number-citation ref-id="id524344"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524437">Unicode Support</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524437"><fo:page-number-citation ref-id="id524437"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options.design">Design Discussion</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options.design"><fo:page-number-citation ref-id="program_options.design"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.program_options.design" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options.design.unicode">Unicode Support</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options.design.unicode"><fo:page-number-citation ref-id="program_options.design.unicode"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524912">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524912"><fo:page-number-citation ref-id="id524912"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options.reference"><fo:page-number-citation ref-id="program_options.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.program_options.reference" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id246856">Header &lt;boost/program_options/cmdline.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id246856"><fo:page-number-citation ref-id="id246856"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id436818">Header &lt;boost/program_options/environment_iterator.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id436818"><fo:page-number-citation ref-id="id436818"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id280769">Header &lt;boost/program_options/eof_iterator.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id280769"><fo:page-number-citation ref-id="id280769"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id427440">Header &lt;boost/program_options/errors.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id427440"><fo:page-number-citation ref-id="id427440"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id419627">Header &lt;boost/program_options/option.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id419627"><fo:page-number-citation ref-id="id419627"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id258673">Header &lt;boost/program_options/options_description.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id258673"><fo:page-number-citation ref-id="id258673"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id225750">Header &lt;boost/program_options/parsers.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id225750"><fo:page-number-citation ref-id="id225750"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id420630">Header &lt;boost/program_options/positional_options.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id420630"><fo:page-number-citation ref-id="id420630"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id391535">Header &lt;boost/program_options/value_semantic.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id391535"><fo:page-number-citation ref-id="id391535"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id361047">Header &lt;boost/program_options/variables_map.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id361047"><fo:page-number-citation ref-id="id361047"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id401803">Header &lt;boost/program_options/version.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id401803"><fo:page-number-citation ref-id="id401803"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="ref">Boost.Ref</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ref"><fo:page-number-citation ref-id="ref"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.ref" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="ref.intro">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ref.intro"><fo:page-number-citation ref-id="ref.intro"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="ref.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ref.reference"><fo:page-number-citation ref-id="ref.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.ref.reference" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="header.boost.ref.hpp">Header &lt;boost/ref.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="header.boost.ref.hpp"><fo:page-number-citation ref-id="header.boost.ref.hpp"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="ref.ack">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ref.ack"><fo:page-number-citation ref-id="ref.ack"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="signals">Boost.Signals</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="signals"><fo:page-number-citation ref-id="signals"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.signals" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id541200">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id541200"><fo:page-number-citation ref-id="id541200"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="signals.tutorial">Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="signals.tutorial"><fo:page-number-citation ref-id="signals.tutorial"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.signals.tutorial" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id541262">How to Read this Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id541262"><fo:page-number-citation ref-id="id541262"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id541327">Compatibility Note</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id541327"><fo:page-number-citation ref-id="id541327"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id541420">Hello, World! (Beginner)</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id541420"><fo:page-number-citation ref-id="id541420"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id541554">Calling multiple slots</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id541554"><fo:page-number-citation ref-id="id541554"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id541904">Passing values to and from slots</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id541904"><fo:page-number-citation ref-id="id541904"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id542714">Connection Management</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id542714"><fo:page-number-citation ref-id="id542714"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id543351">Linking against the Signals library</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id543351"><fo:page-number-citation ref-id="id543351"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="signals.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="signals.reference"><fo:page-number-citation ref-id="signals.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.signals.reference" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="header.boost.signal.hpp">Header &lt;boost/signal.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="header.boost.signal.hpp"><fo:page-number-citation ref-id="header.boost.signal.hpp"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id341848">Header &lt;boost/signals/slot.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id341848"><fo:page-number-citation ref-id="id341848"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id225819">Header &lt;boost/signals/trackable.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id225819"><fo:page-number-citation ref-id="id225819"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id490968">Header &lt;boost/signals/connection.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id490968"><fo:page-number-citation ref-id="id490968"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id234067">Header &lt;boost/visit_each.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id234067"><fo:page-number-citation ref-id="id234067"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id236836">Header &lt;boost/last_value.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id236836"><fo:page-number-citation ref-id="id236836"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id548866">Frequently Asked Questions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id548866"><fo:page-number-citation ref-id="id548866"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id548972">Design Overview</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id548972"><fo:page-number-citation ref-id="id548972"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.id548972" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id548982">Type Erasure</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id548982"><fo:page-number-citation ref-id="id548982"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549053"><fo:inline font-family="monospace">connection</fo:inline> class</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549053"><fo:page-number-citation ref-id="id549053"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549176">Slot Call Iterator</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549176"><fo:page-number-citation ref-id="id549176"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549344"><fo:inline font-family="monospace">visit_each</fo:inline> function template</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549344"><fo:page-number-citation ref-id="id549344"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549496">Design Rationale</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549496"><fo:page-number-citation ref-id="id549496"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.id549496" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549506">Choice of Slot Definitions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549506"><fo:page-number-citation ref-id="id549506"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549596">User-level Connection Management</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549596"><fo:page-number-citation ref-id="id549596"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549758">Combiner Interface</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549758"><fo:page-number-citation ref-id="id549758"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549934">Connection Interfaces: +=  operator</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549934"><fo:page-number-citation ref-id="id549934"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id550109"><fo:inline font-family="monospace">trackable</fo:inline> rationale</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id550109"><fo:page-number-citation ref-id="id550109"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id550292">Comparison with other Signal/Slot implementations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id550292"><fo:page-number-citation ref-id="id550292"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="signals.tests">Testsuite</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="signals.tests"><fo:page-number-citation ref-id="signals.tests"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.signals.tests" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id550410">Acceptance tests</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id550410"><fo:page-number-citation ref-id="id550410"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo">Boost String Algorithms Library</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo"><fo:page-number-citation ref-id="string_algo"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.string_algo" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.intro">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.intro"><fo:page-number-citation ref-id="string_algo.intro"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.usage">Usage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.usage"><fo:page-number-citation ref-id="string_algo.usage"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.string_algo.usage" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id550844">First Example</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id550844"><fo:page-number-citation ref-id="id550844"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551052">Case conversion</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551052"><fo:page-number-citation ref-id="id551052"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551104">Predicates and Classification</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551104"><fo:page-number-citation ref-id="id551104"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551189">Trimming</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551189"><fo:page-number-citation ref-id="id551189"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551249">Find algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551249"><fo:page-number-citation ref-id="id551249"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551367">Replace Algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551367"><fo:page-number-citation ref-id="id551367"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551484">Find Iterator</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551484"><fo:page-number-citation ref-id="id551484"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551587">Split</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551587"><fo:page-number-citation ref-id="id551587"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.quickref">Quick Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.quickref"><fo:page-number-citation ref-id="string_algo.quickref"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.string_algo.quickref" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551727">Algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551727"><fo:page-number-citation ref-id="id551727"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id552984">Finders and Formatters</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id552984"><fo:page-number-citation ref-id="id552984"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id553234">Iterators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id553234"><fo:page-number-citation ref-id="id553234"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id553290">Classification</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id553290"><fo:page-number-citation ref-id="id553290"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.design">Design Topics</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.design"><fo:page-number-citation ref-id="string_algo.design"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.string_algo.design" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.string">String Representation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.string"><fo:page-number-citation ref-id="string_algo.string"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.iterator_range"><fo:inline font-family="monospace">iterator_range</fo:inline> class</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.iterator_range"><fo:page-number-citation ref-id="string_algo.iterator_range"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.collection_traits">Collection Traits</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.collection_traits"><fo:page-number-citation ref-id="string_algo.collection_traits"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.sequence_traits">Sequence Traits</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.sequence_traits"><fo:page-number-citation ref-id="string_algo.sequence_traits"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.find">Find Algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.find"><fo:page-number-citation ref-id="string_algo.find"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.replace">Replace Algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.replace"><fo:page-number-citation ref-id="string_algo.replace"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.split">Find Iterators &amp; Split Algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.split"><fo:page-number-citation ref-id="string_algo.split"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.exception">Exception Safety</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.exception"><fo:page-number-citation ref-id="string_algo.exception"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.concept">Concepts</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.concept"><fo:page-number-citation ref-id="string_algo.concept"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.string_algo.concept" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id554583">Definitions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id554583"><fo:page-number-citation ref-id="id554583"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.finder_concept">Finder Concept</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.finder_concept"><fo:page-number-citation ref-id="string_algo.finder_concept"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.formatter_concept">Formatter concept</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.formatter_concept"><fo:page-number-citation ref-id="string_algo.formatter_concept"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.reference"><fo:page-number-citation ref-id="string_algo.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.string_algo.reference" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id350445">Header &lt;boost/algorithm/string/case_conv.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id350445"><fo:page-number-citation ref-id="id350445"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id388523">Header &lt;boost/algorithm/string/classification.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id388523"><fo:page-number-citation ref-id="id388523"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id407166">Header &lt;boost/algorithm/string/collection_traits.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id407166"><fo:page-number-citation ref-id="id407166"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id266856">Header &lt;boost/algorithm/string/compare.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id266856"><fo:page-number-citation ref-id="id266856"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id336627">Header &lt;boost/algorithm/string/concept.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id336627"><fo:page-number-citation ref-id="id336627"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id228929">Header &lt;boost/algorithm/string/constants.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id228929"><fo:page-number-citation ref-id="id228929"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id236631">Header &lt;boost/algorithm/string/erase.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id236631"><fo:page-number-citation ref-id="id236631"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id448104">Header &lt;boost/algorithm/string/find.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id448104"><fo:page-number-citation ref-id="id448104"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id333397">Header &lt;boost/algorithm/string/find_format.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id333397"><fo:page-number-citation ref-id="id333397"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id254240">Header &lt;boost/algorithm/string/find_iterator.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id254240"><fo:page-number-citation ref-id="id254240"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id383225">Header &lt;boost/algorithm/string/finder.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id383225"><fo:page-number-citation ref-id="id383225"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id267193">Header &lt;boost/algorithm/string/formatter.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id267193"><fo:page-number-citation ref-id="id267193"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id365349">Header &lt;boost/algorithm/string/iterator_range.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id365349"><fo:page-number-citation ref-id="id365349"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id366812">Header &lt;boost/algorithm/string/predicate.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id366812"><fo:page-number-citation ref-id="id366812"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id326535">Header &lt;boost/algorithm/string/regex.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id326535"><fo:page-number-citation ref-id="id326535"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id227790">Header &lt;boost/algorithm/string/regex_find_format.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id227790"><fo:page-number-citation ref-id="id227790"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id439791">Header &lt;boost/algorithm/string/replace.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id439791"><fo:page-number-citation ref-id="id439791"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id264095">Header &lt;boost/algorithm/string/sequence_traits.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id264095"><fo:page-number-citation ref-id="id264095"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id477625">Header &lt;boost/algorithm/string/split.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id477625"><fo:page-number-citation ref-id="id477625"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id349546">Header &lt;boost/algorithm/string/std_containers_traits.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id349546"><fo:page-number-citation ref-id="id349546"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id299529">Header &lt;boost/algorithm/string.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id299529"><fo:page-number-citation ref-id="id299529"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id263316">Header &lt;boost/algorithm/string_regex.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id263316"><fo:page-number-citation ref-id="id263316"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id263327">Header &lt;boost/algorithm/string/trim.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id263327"><fo:page-number-citation ref-id="id263327"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.rationale">Rationale</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.rationale"><fo:page-number-citation ref-id="string_algo.rationale"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.string_algo.rationale" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id590829">Locales</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id590829"><fo:page-number-citation ref-id="id590829"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.regex">Regular Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.regex"><fo:page-number-citation ref-id="string_algo.regex"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.env">Environment</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.env"><fo:page-number-citation ref-id="string_algo.env"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.string_algo.env" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id590941">Build</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id590941"><fo:page-number-citation ref-id="id590941"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id590962">Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id590962"><fo:page-number-citation ref-id="id590962"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id590975">Tests</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id590975"><fo:page-number-citation ref-id="id590975"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id590986">Portability</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id590986"><fo:page-number-citation ref-id="id590986"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.credits">Credits</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.credits"><fo:page-number-citation ref-id="string_algo.credits"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.string_algo.credits" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.ack">Acknowledgments</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.ack"><fo:page-number-citation ref-id="string_algo.ack"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads"><fo:inline font-weight="bold">Boost.Threads</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads"><fo:page-number-citation ref-id="threads"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.threads" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.overview">Overview</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.overview"><fo:page-number-citation ref-id="threads.overview"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.threads.overview" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.introduction">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.introduction"><fo:page-number-citation ref-id="threads.introduction"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id591199">Dangers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id591199"><fo:page-number-citation ref-id="id591199"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id591397">C++ Standard Library usage in multithreaded programs</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id591397"><fo:page-number-citation ref-id="id591397"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id591558">Common guarantees for all <fo:inline font-weight="bold">Boost.Threads</fo:inline> components</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id591558"><fo:page-number-citation ref-id="id591558"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.design">Design</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.design"><fo:page-number-citation ref-id="threads.design"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.threads.design" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.design.goals">Goals</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.design.goals"><fo:page-number-citation ref-id="threads.design.goals"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id591885">Iterative Phases</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id591885"><fo:page-number-citation ref-id="id591885"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id591920">Phase 1, Synchronization Primitives</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id591920"><fo:page-number-citation ref-id="id591920"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.design.phase2">Phase 2, Thread Management and Thread Specific Storage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.design.phase2"><fo:page-number-citation ref-id="threads.design.phase2"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id592079">The Next Phase</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id592079"><fo:page-number-citation ref-id="id592079"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.concepts">Concepts</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.concepts"><fo:page-number-citation ref-id="threads.concepts"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.threads.concepts" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.concepts.mutexes">Mutexes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.concepts.mutexes"><fo:page-number-citation ref-id="threads.concepts.mutexes"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.concepts.read-write-mutexes">Read/Write Mutexes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.concepts.read-write-mutexes"><fo:page-number-citation ref-id="threads.concepts.read-write-mutexes"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.rationale">Rationale</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.rationale"><fo:page-number-citation ref-id="threads.rationale"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.threads.rationale" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.rationale.Boost.Threads">Rationale for the Creation of <fo:inline font-weight="bold">Boost.Threads</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.rationale.Boost.Threads"><fo:page-number-citation ref-id="threads.rationale.Boost.Threads"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.rationale.primitives">Rationale for the Low Level Primitives Supported in <fo:inline font-weight="bold">Boost.Threads</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.rationale.primitives"><fo:page-number-citation ref-id="threads.rationale.primitives"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.rationale.locks">Rationale for the Lock Design</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.rationale.locks"><fo:page-number-citation ref-id="threads.rationale.locks"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.rationale.non-copyable">Rationale for NonCopyable Thread Type</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.rationale.non-copyable"><fo:page-number-citation ref-id="threads.rationale.non-copyable"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.rationale.events">Rationale for not providing <fo:inline font-style="italic">Event Variables</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.rationale.events"><fo:page-number-citation ref-id="threads.rationale.events"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.reference"><fo:page-number-citation ref-id="threads.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.threads.reference" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id470450">Header &lt;boost/thread/barrier.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id470450"><fo:page-number-citation ref-id="id470450"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id525796">Header &lt;boost/thread/condition.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id525796"><fo:page-number-citation ref-id="id525796"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id417361">Header &lt;boost/thread/exceptions.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id417361"><fo:page-number-citation ref-id="id417361"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id405534">Header &lt;boost/thread/mutex.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id405534"><fo:page-number-citation ref-id="id405534"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id485587">Header &lt;boost/thread/once.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id485587"><fo:page-number-citation ref-id="id485587"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id462943">Header &lt;boost/thread/recursive_mutex.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id462943"><fo:page-number-citation ref-id="id462943"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id283850">Header &lt;boost/thread/read_write_mutex.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id283850"><fo:page-number-citation ref-id="id283850"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id277856">Header &lt;boost/thread/thread.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id277856"><fo:page-number-citation ref-id="id277856"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id479200">Header &lt;boost/thread/tss.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id479200"><fo:page-number-citation ref-id="id479200"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id253046">Header &lt;boost/thread/xtime.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id253046"><fo:page-number-citation ref-id="id253046"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.faq">Frequently Asked Questions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.faq"><fo:page-number-citation ref-id="threads.faq"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.configuration">Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.configuration"><fo:page-number-citation ref-id="thread.configuration"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.thread.configuration" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.configuration.public">Library Defined Public Macros</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.configuration.public"><fo:page-number-citation ref-id="thread.configuration.public"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.configuration.implementation">Library Defined Implementation Macros</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.configuration.implementation"><fo:page-number-citation ref-id="thread.configuration.implementation"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.build">Build</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.build"><fo:page-number-citation ref-id="thread.build"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.thread.build" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.build.building">Building the <fo:inline font-weight="bold">Boost.Threads</fo:inline> Libraries</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.build.building"><fo:page-number-citation ref-id="thread.build.building"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.build.testing">Testing the <fo:inline font-weight="bold">Boost.Threads</fo:inline> Libraries</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.build.testing"><fo:page-number-citation ref-id="thread.build.testing"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.implementation_notes">Implementation Notes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.implementation_notes"><fo:page-number-citation ref-id="threads.implementation_notes"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.threads.implementation_notes" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.implementation_notes.win32">Win32</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.implementation_notes.win32"><fo:page-number-citation ref-id="threads.implementation_notes.win32"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.release_notes">Release Notes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.release_notes"><fo:page-number-citation ref-id="threads.release_notes"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.threads.release_notes" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.release_notes.boost_1_32_0">Boost 1.32.0</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.release_notes.boost_1_32_0"><fo:page-number-citation ref-id="threads.release_notes.boost_1_32_0"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.acknowledgements">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.acknowledgements"><fo:page-number-citation ref-id="thread.acknowledgements"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tribool">Boost.Tribool</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tribool"><fo:page-number-citation ref-id="tribool"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.tribool" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tribool.introduction">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tribool.introduction"><fo:page-number-citation ref-id="tribool.introduction"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tribool.tutorial">Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tribool.tutorial"><fo:page-number-citation ref-id="tribool.tutorial"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.tribool.tutorial" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id612895">Basic usage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id612895"><fo:page-number-citation ref-id="id612895"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id613368">Renaming the indeterminate state</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id613368"><fo:page-number-citation ref-id="id613368"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id613453"><fo:inline font-family="monospace">tribool</fo:inline> input/output</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id613453"><fo:page-number-citation ref-id="id613453"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tribool.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tribool.reference"><fo:page-number-citation ref-id="tribool.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.tribool.reference" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id442636">Header &lt;boost/logic/tribool.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id442636"><fo:page-number-citation ref-id="id442636"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id506430">Header &lt;boost/logic/tribool_fwd.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id506430"><fo:page-number-citation ref-id="id506430"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id267011">Header &lt;boost/logic/tribool_io.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id267011"><fo:page-number-citation ref-id="id267011"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tribool.tests">Testsuite</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tribool.tests"><fo:page-number-citation ref-id="tribool.tests"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.tribool.tests" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tribool.tests.acceptance">Acceptance tests</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tribool.tests.acceptance"><fo:page-number-citation ref-id="tribool.tests.acceptance"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant">Boost.Variant</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant"><fo:page-number-citation ref-id="variant"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.variant" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.intro">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.intro"><fo:page-number-citation ref-id="variant.intro"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.variant.intro" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.abstract">Abstract</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.abstract"><fo:page-number-citation ref-id="variant.abstract"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.motivation">Motivation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.motivation"><fo:page-number-citation ref-id="variant.motivation"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.tutorial">Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.tutorial"><fo:page-number-citation ref-id="variant.tutorial"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.variant.tutorial" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.tutorial.basic">Basic Usage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.tutorial.basic"><fo:page-number-citation ref-id="variant.tutorial.basic"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.tutorial.advanced">Advanced Topics</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.tutorial.advanced"><fo:page-number-citation ref-id="variant.tutorial.advanced"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.reference"><fo:page-number-citation ref-id="variant.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.variant.reference" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.concepts">Concepts</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.concepts"><fo:page-number-citation ref-id="variant.concepts"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="header.boost.variant.hpp">Header &lt;boost/variant.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="header.boost.variant.hpp"><fo:page-number-citation ref-id="header.boost.variant.hpp"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id262208">Header &lt;boost/variant/variant_fwd.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id262208"><fo:page-number-citation ref-id="id262208"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id516960">Header &lt;boost/variant/variant.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id516960"><fo:page-number-citation ref-id="id516960"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id267452">Header &lt;boost/variant/recursive_variant.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id267452"><fo:page-number-citation ref-id="id267452"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id352292">Header &lt;boost/variant/recursive_wrapper.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id352292"><fo:page-number-citation ref-id="id352292"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id388564">Header &lt;boost/variant/apply_visitor.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id388564"><fo:page-number-citation ref-id="id388564"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id446657">Header &lt;boost/variant/get.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id446657"><fo:page-number-citation ref-id="id446657"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id503352">Header &lt;boost/variant/bad_visit.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id503352"><fo:page-number-citation ref-id="id503352"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id382199">Header &lt;boost/variant/static_visitor.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id382199"><fo:page-number-citation ref-id="id382199"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id500650">Header &lt;boost/variant/visitor_ptr.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id500650"><fo:page-number-citation ref-id="id500650"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.design">Design Overview</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.design"><fo:page-number-citation ref-id="variant.design"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.variant.design" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.design.never-empty">"Never-Empty" Guarantee</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.design.never-empty"><fo:page-number-citation ref-id="variant.design.never-empty"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.misc">Miscellaneous Notes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.misc"><fo:page-number-citation ref-id="variant.misc"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.variant.misc" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.versus-any">Boost.Variant vs. Boost.Any</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.versus-any"><fo:page-number-citation ref-id="variant.versus-any"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id630686">Portability</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id630686"><fo:page-number-citation ref-id="id630686"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.troubleshooting">Troubleshooting</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.troubleshooting"><fo:page-number-citation ref-id="variant.troubleshooting"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.ack">Acknowledgments</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.ack"><fo:page-number-citation ref-id="variant.ack"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.refs">References</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.refs"><fo:page-number-citation ref-id="variant.refs"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook">II. The BoostBook Documentation Format</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook"><fo:page-number-citation ref-id="boostbook"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.boostbook" start-indent="24pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id631415">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id631415"><fo:page-number-citation ref-id="id631415"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.getting.started">Getting Started</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.getting.started"><fo:page-number-citation ref-id="boostbook.getting.started"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.boostbook.getting.started" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.docbook.config">Configuring local DocBook XSL and DTD distributions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.docbook.config"><fo:page-number-citation ref-id="boostbook.docbook.config"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.fop">Configuring Apache FOP for PostScript/PDF Output</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.fop"><fo:page-number-citation ref-id="boostbook.fop"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.doxygen">Configuring Doxygen for Documentation Extraction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.doxygen"><fo:page-number-citation ref-id="boostbook.doxygen"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.troubleshooting">Troubleshooting</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.troubleshooting"><fo:page-number-citation ref-id="boostbook.troubleshooting"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.documenting">Documenting libraries</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.documenting"><fo:page-number-citation ref-id="boostbook.documenting"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.boostbook.documenting" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.defining">Defining a BoostBook library</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.defining"><fo:page-number-citation ref-id="boostbook.defining"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id632688">From HTML to BoostBook</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id632688"><fo:page-number-citation ref-id="id632688"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.sectioning">Sectioning in BoostBook</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.sectioning"><fo:page-number-citation ref-id="boostbook.sectioning"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.together">Bringing Together a BoostBook Document</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.together"><fo:page-number-citation ref-id="boostbook.together"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.boostbook.together" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.linking">Linking in BoostBook</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.linking"><fo:page-number-citation ref-id="boostbook.linking"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="reference"><fo:page-number-citation ref-id="reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.class-specialization">
          BoostBook element <fo:inline font-family="monospace">class-specialization</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.class-specialization"><fo:page-number-citation ref-id="boostbook.dtd.class-specialization"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.link-test">
          BoostBook element <fo:inline font-family="monospace">link-test</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.link-test"><fo:page-number-citation ref-id="boostbook.dtd.link-test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.link-fail-test">
          BoostBook element <fo:inline font-family="monospace">link-fail-test</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.link-fail-test"><fo:page-number-citation ref-id="boostbook.dtd.link-fail-test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.typedef">
          BoostBook element <fo:inline font-family="monospace">typedef</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.typedef"><fo:page-number-citation ref-id="boostbook.dtd.typedef"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.static-constant">
          BoostBook element <fo:inline font-family="monospace">static-constant</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.static-constant"><fo:page-number-citation ref-id="boostbook.dtd.static-constant"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.code">
          BoostBook element <fo:inline font-family="monospace">code</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.code"><fo:page-number-citation ref-id="boostbook.dtd.code"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.destructor">
          BoostBook element <fo:inline font-family="monospace">destructor</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.destructor"><fo:page-number-citation ref-id="boostbook.dtd.destructor"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.template-type-parameter">
          BoostBook element <fo:inline font-family="monospace">template-type-parameter</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.template-type-parameter"><fo:page-number-citation ref-id="boostbook.dtd.template-type-parameter"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.description">
          BoostBook element <fo:inline font-family="monospace">description</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.description"><fo:page-number-citation ref-id="boostbook.dtd.description"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.librarylist">
          BoostBook element <fo:inline font-family="monospace">librarylist</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.librarylist"><fo:page-number-citation ref-id="boostbook.dtd.librarylist"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.library-reference">
          BoostBook element <fo:inline font-family="monospace">library-reference</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.library-reference"><fo:page-number-citation ref-id="boostbook.dtd.library-reference"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.boostbook">
          BoostBook element <fo:inline font-family="monospace">boostbook</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.boostbook"><fo:page-number-citation ref-id="boostbook.dtd.boostbook"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.union">
          BoostBook element <fo:inline font-family="monospace">union</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.union"><fo:page-number-citation ref-id="boostbook.dtd.union"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.inherit">
          BoostBook element <fo:inline font-family="monospace">inherit</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.inherit"><fo:page-number-citation ref-id="boostbook.dtd.inherit"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.template-varargs">
          BoostBook element <fo:inline font-family="monospace">template-varargs</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.template-varargs"><fo:page-number-citation ref-id="boostbook.dtd.template-varargs"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.source">
          BoostBook element <fo:inline font-family="monospace">source</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.source"><fo:page-number-citation ref-id="boostbook.dtd.source"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.function">
          BoostBook element <fo:inline font-family="monospace">function</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.function"><fo:page-number-citation ref-id="boostbook.dtd.function"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.postconditions">
          BoostBook element <fo:inline font-family="monospace">postconditions</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.postconditions"><fo:page-number-citation ref-id="boostbook.dtd.postconditions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.compile-test">
          BoostBook element <fo:inline font-family="monospace">compile-test</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.compile-test"><fo:page-number-citation ref-id="boostbook.dtd.compile-test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.method">
          BoostBook element <fo:inline font-family="monospace">method</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.method"><fo:page-number-citation ref-id="boostbook.dtd.method"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.snippet">
          BoostBook element <fo:inline font-family="monospace">snippet</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.snippet"><fo:page-number-citation ref-id="boostbook.dtd.snippet"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.constructor">
          BoostBook element <fo:inline font-family="monospace">constructor</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.constructor"><fo:page-number-citation ref-id="boostbook.dtd.constructor"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.namespace">
          BoostBook element <fo:inline font-family="monospace">namespace</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.namespace"><fo:page-number-citation ref-id="boostbook.dtd.namespace"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.if-fails">
          BoostBook element <fo:inline font-family="monospace">if-fails</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.if-fails"><fo:page-number-citation ref-id="boostbook.dtd.if-fails"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.free-function-group">
          BoostBook element <fo:inline font-family="monospace">free-function-group</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.free-function-group"><fo:page-number-citation ref-id="boostbook.dtd.free-function-group"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.functionname">
          BoostBook element <fo:inline font-family="monospace">functionname</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.functionname"><fo:page-number-citation ref-id="boostbook.dtd.functionname"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.librarycategory">
          BoostBook element <fo:inline font-family="monospace">librarycategory</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.librarycategory"><fo:page-number-citation ref-id="boostbook.dtd.librarycategory"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.notes">
          BoostBook element <fo:inline font-family="monospace">notes</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.notes"><fo:page-number-citation ref-id="boostbook.dtd.notes"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.data-member">
          BoostBook element <fo:inline font-family="monospace">data-member</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.data-member"><fo:page-number-citation ref-id="boostbook.dtd.data-member"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.specialization">
          BoostBook element <fo:inline font-family="monospace">specialization</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.specialization"><fo:page-number-citation ref-id="boostbook.dtd.specialization"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.union-specialization">
          BoostBook element <fo:inline font-family="monospace">union-specialization</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.union-specialization"><fo:page-number-citation ref-id="boostbook.dtd.union-specialization"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.throws">
          BoostBook element <fo:inline font-family="monospace">throws</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.throws"><fo:page-number-citation ref-id="boostbook.dtd.throws"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.template-arg">
          BoostBook element <fo:inline font-family="monospace">template-arg</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.template-arg"><fo:page-number-citation ref-id="boostbook.dtd.template-arg"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.method-group">
          BoostBook element <fo:inline font-family="monospace">method-group</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.method-group"><fo:page-number-citation ref-id="boostbook.dtd.method-group"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.requirement">
          BoostBook element <fo:inline font-family="monospace">requirement</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.requirement"><fo:page-number-citation ref-id="boostbook.dtd.requirement"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.precondition">
          BoostBook element <fo:inline font-family="monospace">precondition</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.precondition"><fo:page-number-citation ref-id="boostbook.dtd.precondition"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.paramtype">
          BoostBook element <fo:inline font-family="monospace">paramtype</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.paramtype"><fo:page-number-citation ref-id="boostbook.dtd.paramtype"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.using-class">
          BoostBook element <fo:inline font-family="monospace">using-class</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.using-class"><fo:page-number-citation ref-id="boostbook.dtd.using-class"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.run-test">
          BoostBook element <fo:inline font-family="monospace">run-test</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.run-test"><fo:page-number-citation ref-id="boostbook.dtd.run-test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.librarypurpose">
          BoostBook element <fo:inline font-family="monospace">librarypurpose</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.librarypurpose"><fo:page-number-citation ref-id="boostbook.dtd.librarypurpose"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.copy-assignment">
          BoostBook element <fo:inline font-family="monospace">copy-assignment</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.copy-assignment"><fo:page-number-citation ref-id="boostbook.dtd.copy-assignment"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.run-fail-test">
          BoostBook element <fo:inline font-family="monospace">run-fail-test</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.run-fail-test"><fo:page-number-citation ref-id="boostbook.dtd.run-fail-test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.template">
          BoostBook element <fo:inline font-family="monospace">template</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.template"><fo:page-number-citation ref-id="boostbook.dtd.template"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.compile-fail-test">
          BoostBook element <fo:inline font-family="monospace">compile-fail-test</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.compile-fail-test"><fo:page-number-citation ref-id="boostbook.dtd.compile-fail-test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.returns">
          BoostBook element <fo:inline font-family="monospace">returns</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.returns"><fo:page-number-citation ref-id="boostbook.dtd.returns"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.default">
          BoostBook element <fo:inline font-family="monospace">default</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.default"><fo:page-number-citation ref-id="boostbook.dtd.default"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.parameter">
          BoostBook element <fo:inline font-family="monospace">parameter</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.parameter"><fo:page-number-citation ref-id="boostbook.dtd.parameter"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.signature">
          BoostBook element <fo:inline font-family="monospace">signature</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.signature"><fo:page-number-citation ref-id="boostbook.dtd.signature"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.overloaded-function">
          BoostBook element <fo:inline font-family="monospace">overloaded-function</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.overloaded-function"><fo:page-number-citation ref-id="boostbook.dtd.overloaded-function"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.class">
          BoostBook element <fo:inline font-family="monospace">class</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.class"><fo:page-number-citation ref-id="boostbook.dtd.class"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.librarycategorydef">
          BoostBook element <fo:inline font-family="monospace">librarycategorydef</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.librarycategorydef"><fo:page-number-citation ref-id="boostbook.dtd.librarycategorydef"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.type">
          BoostBook element <fo:inline font-family="monospace">type</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.type"><fo:page-number-citation ref-id="boostbook.dtd.type"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.enumvalue">
          BoostBook element <fo:inline font-family="monospace">enumvalue</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.enumvalue"><fo:page-number-citation ref-id="boostbook.dtd.enumvalue"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.overloaded-method">
          BoostBook element <fo:inline font-family="monospace">overloaded-method</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.overloaded-method"><fo:page-number-citation ref-id="boostbook.dtd.overloaded-method"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.programlisting">
          BoostBook element <fo:inline font-family="monospace">programlisting</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.programlisting"><fo:page-number-citation ref-id="boostbook.dtd.programlisting"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.complexity">
          BoostBook element <fo:inline font-family="monospace">complexity</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.complexity"><fo:page-number-citation ref-id="boostbook.dtd.complexity"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.purpose">
          BoostBook element <fo:inline font-family="monospace">purpose</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.purpose"><fo:page-number-citation ref-id="boostbook.dtd.purpose"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.template-nontype-parameter">
          BoostBook element <fo:inline font-family="monospace">template-nontype-parameter</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.template-nontype-parameter"><fo:page-number-citation ref-id="boostbook.dtd.template-nontype-parameter"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.library">
          BoostBook element <fo:inline font-family="monospace">library</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.library"><fo:page-number-citation ref-id="boostbook.dtd.library"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.librarycategorylist">
          BoostBook element <fo:inline font-family="monospace">librarycategorylist</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.librarycategorylist"><fo:page-number-citation ref-id="boostbook.dtd.librarycategorylist"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.using-namespace">
          BoostBook element <fo:inline font-family="monospace">using-namespace</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.using-namespace"><fo:page-number-citation ref-id="boostbook.dtd.using-namespace"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.struct-specialization">
          BoostBook element <fo:inline font-family="monospace">struct-specialization</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.struct-specialization"><fo:page-number-citation ref-id="boostbook.dtd.struct-specialization"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.struct">
          BoostBook element <fo:inline font-family="monospace">struct</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.struct"><fo:page-number-citation ref-id="boostbook.dtd.struct"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.lib">
          BoostBook element <fo:inline font-family="monospace">lib</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.lib"><fo:page-number-citation ref-id="boostbook.dtd.lib"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.enum">
          BoostBook element <fo:inline font-family="monospace">enum</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.enum"><fo:page-number-citation ref-id="boostbook.dtd.enum"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.requires">
          BoostBook element <fo:inline font-family="monospace">requires</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.requires"><fo:page-number-citation ref-id="boostbook.dtd.requires"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.effects">
          BoostBook element <fo:inline font-family="monospace">effects</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.effects"><fo:page-number-citation ref-id="boostbook.dtd.effects"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.libraryname">
          BoostBook element <fo:inline font-family="monospace">libraryname</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.libraryname"><fo:page-number-citation ref-id="boostbook.dtd.libraryname"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.libraryinfo">
          BoostBook element <fo:inline font-family="monospace">libraryinfo</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.libraryinfo"><fo:page-number-citation ref-id="boostbook.dtd.libraryinfo"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.testsuite">
          BoostBook element <fo:inline font-family="monospace">testsuite</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.testsuite"><fo:page-number-citation ref-id="boostbook.dtd.testsuite"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.header">
          BoostBook element <fo:inline font-family="monospace">header</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.header"><fo:page-number-citation ref-id="boostbook.dtd.header"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.rationale">
          BoostBook element <fo:inline font-family="monospace">rationale</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.rationale"><fo:page-number-citation ref-id="boostbook.dtd.rationale"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2">III. Boost.Build v2 User Manual</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2"><fo:page-number-citation ref-id="bbv2"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2" start-indent="24pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.howto">How to use this document</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.howto"><fo:page-number-citation ref-id="bbv2.howto"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.installation">Installation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.installation"><fo:page-number-citation ref-id="bbv2.installation"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial">Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial"><fo:page-number-citation ref-id="bbv2.tutorial"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.tutorial" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.hello">Hello, world</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.hello"><fo:page-number-citation ref-id="bbv2.tutorial.hello"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.properties">Properties</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.properties"><fo:page-number-citation ref-id="bbv2.tutorial.properties"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.tutorial.properties" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.properties.requirements">Build Requests and Target Requirements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.properties.requirements"><fo:page-number-citation ref-id="bbv2.tutorial.properties.requirements"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.properties.project_attributes">Project Attributes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.properties.project_attributes"><fo:page-number-citation ref-id="bbv2.tutorial.properties.project_attributes"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.hierarchy">Project Hierarchies</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.hierarchy"><fo:page-number-citation ref-id="bbv2.tutorial.hierarchy"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.libs">Libraries and Dependent Targets</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.libs"><fo:page-number-citation ref-id="bbv2.tutorial.libs"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.depends">Library dependencies</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.depends"><fo:page-number-citation ref-id="bbv2.tutorial.depends"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.linkage">Static and shared libaries</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.linkage"><fo:page-number-citation ref-id="bbv2.tutorial.linkage"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.conditions">Conditions and alternatives</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.conditions"><fo:page-number-citation ref-id="bbv2.tutorial.conditions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.prebuilt">Prebuilt targets</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.prebuilt"><fo:page-number-citation ref-id="bbv2.tutorial.prebuilt"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced">User documentation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced"><fo:page-number-citation ref-id="bbv2.advanced"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.advanced" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.configuration">Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.configuration"><fo:page-number-citation ref-id="bbv2.advanced.configuration"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.jamfiles">Writing Jamfiles</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.jamfiles"><fo:page-number-citation ref-id="bbv2.advanced.jamfiles"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.advanced.jamfiles" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.overview">Overview</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.overview"><fo:page-number-citation ref-id="bbv2.advanced.overview"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.targets">Main targets</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.targets"><fo:page-number-citation ref-id="bbv2.advanced.targets"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.projects">Projects</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.projects"><fo:page-number-citation ref-id="bbv2.advanced.projects"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.other-rules">Additional Jamfile rules</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.other-rules"><fo:page-number-citation ref-id="bbv2.advanced.other-rules"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.project-root">Project root</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.project-root"><fo:page-number-citation ref-id="bbv2.advanced.project-root"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.build_process">Build process</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.build_process"><fo:page-number-citation ref-id="bbv2.advanced.build_process"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.advanced.build_process" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id647047">Build request</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id647047"><fo:page-number-citation ref-id="id647047"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id647094">Building a main target</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id647094"><fo:page-number-citation ref-id="id647094"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id647228">Building a project</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id647228"><fo:page-number-citation ref-id="id647228"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.builtins.targets">Builtin target types</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.builtins.targets"><fo:page-number-citation ref-id="bbv2.advanced.builtins.targets"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.advanced.builtins.targets" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id647292">Programs</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id647292"><fo:page-number-citation ref-id="id647292"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id647361">Libraries</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id647361"><fo:page-number-citation ref-id="id647361"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.builtins.alias">Alias</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.builtins.alias"><fo:page-number-citation ref-id="bbv2.builtins.alias"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.builtins.stage">Installing</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.builtins.stage"><fo:page-number-citation ref-id="bbv2.builtins.stage"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.builtins.testing">Testing</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.builtins.testing"><fo:page-number-citation ref-id="bbv2.builtins.testing"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.builtins.features">Builtin features</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.builtins.features"><fo:page-number-citation ref-id="bbv2.advanced.builtins.features"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.differences_to_v1">Differences to Boost.Build V1</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.differences_to_v1"><fo:page-number-citation ref-id="bbv2.advanced.differences_to_v1"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.advanced.differences_to_v1" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.differences_to_v1.configuration">Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.differences_to_v1.configuration"><fo:page-number-citation ref-id="bbv2.advanced.differences_to_v1.configuration"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.differences_to_v1.jamfiles">Writing Jamfiles</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.differences_to_v1.jamfiles"><fo:page-number-citation ref-id="bbv2.advanced.differences_to_v1.jamfiles"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.differences_to_v1.build_process">Build process</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.differences_to_v1.build_process"><fo:page-number-citation ref-id="bbv2.advanced.differences_to_v1.build_process"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extender">Extender Manual</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extender"><fo:page-number-citation ref-id="bbv2.extender"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.extender" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extender.intro">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extender.intro"><fo:page-number-citation ref-id="bbv2.extender.intro"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extending.targets">Target types</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extending.targets"><fo:page-number-citation ref-id="bbv2.extending.targets"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.extending.targets" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extending.scanners">Scanners</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extending.scanners"><fo:page-number-citation ref-id="bbv2.extending.scanners"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extending.tools">Tools and generators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extending.tools"><fo:page-number-citation ref-id="bbv2.extending.tools"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extending.features">Features</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extending.features"><fo:page-number-citation ref-id="bbv2.extending.features"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extending.rules">Main target rules</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extending.rules"><fo:page-number-citation ref-id="bbv2.extending.rules"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extending.toolset_modules">Toolset modules</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extending.toolset_modules"><fo:page-number-citation ref-id="bbv2.extending.toolset_modules"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference">Detailed reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference"><fo:page-number-citation ref-id="bbv2.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.general">General information</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.general"><fo:page-number-citation ref-id="bbv2.reference.general"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.reference.general" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.init">Initialization</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.init"><fo:page-number-citation ref-id="bbv2.reference.init"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.commandline">Command line</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.commandline"><fo:page-number-citation ref-id="bbv2.reference.commandline"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.jamfiles">Writing Jamfiles</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.jamfiles"><fo:page-number-citation ref-id="bbv2.reference.jamfiles"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.reference.jamfiles" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.headers">Generated headers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.headers"><fo:page-number-citation ref-id="bbv2.reference.headers"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.buildprocess">Build process</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.buildprocess"><fo:page-number-citation ref-id="bbv2.reference.buildprocess"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.reference.buildprocess" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.buildprocess.alternatives">Alternative selection</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.buildprocess.alternatives"><fo:page-number-citation ref-id="bbv2.reference.buildprocess.alternatives"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.buildprocess.common">Determining common properties</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.buildprocess.common"><fo:page-number-citation ref-id="bbv2.reference.buildprocess.common"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.definitions"/></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.definitions"><fo:page-number-citation ref-id="bbv2.reference.definitions"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.reference.definitions" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.features">Features and properties</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.features"><fo:page-number-citation ref-id="bbv2.reference.features"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.variants">Build Variants</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.variants"><fo:page-number-citation ref-id="bbv2.reference.variants"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.variants.proprefine">Property refinement</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.variants.proprefine"><fo:page-number-citation ref-id="bbv2.reference.variants.proprefine"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.variants.propcond">Conditional properties</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.variants.propcond"><fo:page-number-citation ref-id="bbv2.reference.variants.propcond"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.ids">Target identifiers and references</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.ids"><fo:page-number-citation ref-id="bbv2.reference.ids"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.generators">Generators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.generators"><fo:page-number-citation ref-id="bbv2.reference.generators"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.reference.generators" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651373">Selecting and ranking viable generators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651373"><fo:page-number-citation ref-id="id651373"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651424">Running generators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651424"><fo:page-number-citation ref-id="id651424"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651466">Selecting dependency graph</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651466"><fo:page-number-citation ref-id="id651466"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651478">Property adjustment</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651478"><fo:page-number-citation ref-id="id651478"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651542">Transformations cache</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651542"><fo:page-number-citation ref-id="id651542"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.faq">Frequently Asked Questions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.faq"><fo:page-number-citation ref-id="bbv2.faq"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.faq" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651567">
        I'm getting "Duplicate name of actual target" error. What
        does it mean?
      </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651567"><fo:page-number-citation ref-id="id651567"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651656">
      Accessing environment variables
      </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651656"><fo:page-number-citation ref-id="id651656"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651695">
        How to control properties order?
      </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651695"><fo:page-number-citation ref-id="id651695"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651742">
      How to control the library order on Unix?
    </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651742"><fo:page-number-citation ref-id="id651742"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.faq.external">Can I get output of external program as a variable in a Jamfile?
    </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.faq.external"><fo:page-number-citation ref-id="bbv2.faq.external"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651833">How to get the project-root location?
    </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651833"><fo:page-number-citation ref-id="id651833"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651855">How to change compilation flags for one file?
    </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651855"><fo:page-number-citation ref-id="id651855"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.faq.dll-path">Why are the <fo:inline font-family="monospace">dll-path</fo:inline> and
    <fo:inline font-family="monospace">hardcode-dll-paths</fo:inline> properties useful?
    </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.faq.dll-path"><fo:page-number-citation ref-id="bbv2.faq.dll-path"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.recipies.site-config">Targets in site-config.jam</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.recipies.site-config"><fo:page-number-citation ref-id="bbv2.recipies.site-config"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.arch">B. Boost.Build v2 architecture</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.arch"><fo:page-number-citation ref-id="bbv2.arch"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.arch" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.arch.overview">Overview</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.arch.overview"><fo:page-number-citation ref-id="bbv2.arch.overview"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.arch.build">The build layer</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.arch.build"><fo:page-number-citation ref-id="bbv2.arch.build"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.arch.tools">The tools layer</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.arch.tools"><fo:page-number-citation ref-id="bbv2.arch.tools"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.arch.targets">Targets</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.arch.targets"><fo:page-number-citation ref-id="bbv2.arch.targets"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id96888.bbv2.arch.targets" start-indent="72pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.arch.depends">Dependency scanning</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.arch.depends"><fo:page-number-citation ref-id="bbv2.arch.depends"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence hyphenate="true" master-reference="lot" language="en" format="i" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>The Boost C++ Libraries</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>The Boost C++ Libraries</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="lot...table...id96888"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">List of Tables</fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="table:constructor_destructor_fos">1. Construction and destruction related function objects.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="table:constructor_destructor_fos"><fo:page-number-citation ref-id="table:constructor_destructor_fos"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="table:actions">2. Action types</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="table:actions"><fo:page-number-citation ref-id="table:actions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="table:increasing_arithmetic_test">3. Test 1CPU time of expressions with integer multiplication written as a lambda expression and as a traditional hand-coded function object class. 
The running times are expressed in arbitrary units.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="table:increasing_arithmetic_test"><fo:page-number-citation ref-id="table:increasing_arithmetic_test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="table:ll_vs_stl_test">4. Test 2CPU time of arithmetic expressions written as lambda 
expressions, as classic STL unnamed functions (using <fo:inline font-family="monospace">compose2</fo:inline>, <fo:inline font-family="monospace">bind1st</fo:inline> etc.) and as traditional hand-coded function object classes. 
Using BLL terminology, 
<fo:inline font-family="monospace">a</fo:inline> and <fo:inline font-family="monospace">b</fo:inline> are bound arguments in the expressions, and <fo:inline font-family="monospace">x</fo:inline> is open. 
All variables were of types <fo:inline font-family="monospace">double</fo:inline>.
The running times are expressed in arbitrary units.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="table:ll_vs_stl_test"><fo:page-number-citation ref-id="table:ll_vs_stl_test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551731">1. Case Conversion</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551731"><fo:page-number-citation ref-id="id551731"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551808">2. Trimming</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551808"><fo:page-number-citation ref-id="id551808"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551976">3. Predicates</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551976"><fo:page-number-citation ref-id="id551976"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id552132">4. Find algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id552132"><fo:page-number-citation ref-id="id552132"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id552312">5. Erase/Replace</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id552312"><fo:page-number-citation ref-id="id552312"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id552906">6. Split</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id552906"><fo:page-number-citation ref-id="id552906"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id552988">7. Finders</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id552988"><fo:page-number-citation ref-id="id552988"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id553143">8. Formatters</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id553143"><fo:page-number-citation ref-id="id553143"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id553238">9. Find Iterators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id553238"><fo:page-number-citation ref-id="id553238"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id553294">10. Predicates</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id553294"><fo:page-number-citation ref-id="id553294"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id553872">11. Collection Traits</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id553872"><fo:page-number-citation ref-id="id553872"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id554171">12. Sequence Traits</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id554171"><fo:page-number-citation ref-id="id554171"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id554587">13. Notation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id554587"><fo:page-number-citation ref-id="id554587"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id554699">14. Valid Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id554699"><fo:page-number-citation ref-id="id554699"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id554859">15. Valid Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id554859"><fo:page-number-citation ref-id="id554859"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id592664">1. Mutex Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id592664"><fo:page-number-citation ref-id="id592664"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id592749">2. TryMutex Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id592749"><fo:page-number-citation ref-id="id592749"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id592817">3. TimedMutex Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id592817"><fo:page-number-citation ref-id="id592817"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id592877">4. Mutex Models</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id592877"><fo:page-number-citation ref-id="id592877"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id593120">5. Lock Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id593120"><fo:page-number-citation ref-id="id593120"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id593376">6. ScopedLock Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id593376"><fo:page-number-citation ref-id="id593376"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id593491">7. TryLock Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id593491"><fo:page-number-citation ref-id="id593491"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id593625">8. ScopedTryLock Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id593625"><fo:page-number-citation ref-id="id593625"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id593758">9. TimedLock Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id593758"><fo:page-number-citation ref-id="id593758"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id593912">10. ScopedTimedLock Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id593912"><fo:page-number-citation ref-id="id593912"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id594020">11. Lock Models</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id594020"><fo:page-number-citation ref-id="id594020"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id595932">12. ReadWriteMutex Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id595932"><fo:page-number-citation ref-id="id595932"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id596094">13. TryReadWriteMutex Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id596094"><fo:page-number-citation ref-id="id596094"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id596209">14. TimedReadWriteMutex Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id596209"><fo:page-number-citation ref-id="id596209"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id596316">15. Mutex Models</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id596316"><fo:page-number-citation ref-id="id596316"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id596543">16. ReadWriteLock Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id596543"><fo:page-number-citation ref-id="id596543"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id597128">17. ScopedReadWriteLock Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id597128"><fo:page-number-citation ref-id="id597128"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id597233">18. TryReadWriteLock Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id597233"><fo:page-number-citation ref-id="id597233"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id597525">19. ScopedTryReadWriteLock Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id597525"><fo:page-number-citation ref-id="id597525"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id597671">20. TimedReadWriteLock Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id597671"><fo:page-number-citation ref-id="id597671"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id598003">21. ScopedTimedReadWriteLock Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id598003"><fo:page-number-citation ref-id="id598003"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id598177">22. Lock Models</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id598177"><fo:page-number-citation ref-id="id598177"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id603627">23. Supported Lock Types</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id603627"><fo:page-number-citation ref-id="id603627"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id604113">24. Supported Lock Types</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id604113"><fo:page-number-citation ref-id="id604113"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id604624">25. Supported Lock Types</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id604624"><fo:page-number-citation ref-id="id604624"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id611673">26. Thread States</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id611673"><fo:page-number-citation ref-id="id611673"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id611729">27. Thread States Transitions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id611729"><fo:page-number-citation ref-id="id611729"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id611984">28. Memory Visibility</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id611984"><fo:page-number-citation ref-id="id611984"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.output.formats">1. BoostBook Output Formats</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.output.formats"><fo:page-number-citation ref-id="boostbook.output.formats"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="html.to.boostbook">1. Converting HTML elements to BoostBook</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="html.to.boostbook"><fo:page-number-citation ref-id="html.to.boostbook"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id646707">1. </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id646707"><fo:page-number-citation ref-id="id646707"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id646826">2. </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id646826"><fo:page-number-citation ref-id="id646826"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.init.config">1. Search paths for configuration files</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.init.config"><fo:page-number-citation ref-id="bbv2.reference.init.config"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id650155">2. Command line options</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id650155"><fo:page-number-citation ref-id="id650155"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence hyphenate="true" master-reference="lot" language="en" format="i" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>The Boost C++ Libraries</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>The Boost C++ Libraries</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="lot...example...id96888"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">List of Examples</fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="ex:exceptions">1. Throwing and handling exceptions in lambda expressions.</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ex:exceptions"><fo:page-number-citation ref-id="ex:exceptions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.documenting.skeletal">1. A Skeletal BoostBook Library</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.documenting.skeletal"><fo:page-number-citation ref-id="boostbook.documenting.skeletal"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="titlepage" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="libraries"><fo:block><fo:block><fo:block text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" hyphenate="false">Part&#xA0;I.&#xA0;The Boost C++ Libraries</fo:block></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence hyphenate="true" master-reference="lot" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>The Boost C++ Libraries</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>The Boost C++ Libraries</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="toc...libraries" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">Table of Contents</fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="any">Boost.Any</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="any"><fo:page-number-citation ref-id="any"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.any" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id422258">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id422258"><fo:page-number-citation ref-id="id422258"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id422419">Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id422419"><fo:page-number-citation ref-id="id422419"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="any.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="any.reference"><fo:page-number-citation ref-id="any.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.any.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="any.ValueType"><fo:inline font-style="italic">ValueType</fo:inline> requirements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="any.ValueType"><fo:page-number-citation ref-id="any.ValueType"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="header.boost.any.hpp">Header &lt;boost/any.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="header.boost.any.hpp"><fo:page-number-citation ref-id="header.boost.any.hpp"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id424278">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id424278"><fo:page-number-citation ref-id="id424278"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="array">Boost.Array</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="array"><fo:page-number-citation ref-id="array"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.array" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="array.intro">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="array.intro"><fo:page-number-citation ref-id="array.intro"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="array.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="array.reference"><fo:page-number-citation ref-id="array.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.array.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="header.boost.array.hpp">Header &lt;boost/array.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="header.boost.array.hpp"><fo:page-number-citation ref-id="header.boost.array.hpp"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="array.rationale">Design Rationale</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="array.rationale"><fo:page-number-citation ref-id="array.rationale"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="array.more.info">For more information...</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="array.more.info"><fo:page-number-citation ref-id="array.more.info"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="array.ack">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="array.ack"><fo:page-number-citation ref-id="array.ack"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time">Boost.Date_Time</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time"><fo:page-number-citation ref-id="date_time"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.date_time" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.intro"/></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.intro"><fo:page-number-citation ref-id="date_time.intro"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.conceptual">Conceptual</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.conceptual"><fo:page-number-citation ref-id="date_time.conceptual"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.date_time.conceptual" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="Motivation">Motivation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="Motivation"><fo:page-number-citation ref-id="Motivation"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.domain_concepts">Domain Concepts</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.domain_concepts"><fo:page-number-citation ref-id="date_time.domain_concepts"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.design_concepts">Design Concepts</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.design_concepts"><fo:page-number-citation ref-id="date_time.design_concepts"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.conceptual.more_info">More Information</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.conceptual.more_info"><fo:page-number-citation ref-id="date_time.conceptual.more_info"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian">Gregorian</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian"><fo:page-number-citation ref-id="date_time.gregorian"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.date_time.gregorian" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.date_class">Date Class</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.date_class"><fo:page-number-citation ref-id="date_time.gregorian.date_class"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.date_duration">Date Duration (aka Days)</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.date_duration"><fo:page-number-citation ref-id="date_time.gregorian.date_duration"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.date_period">Date Period</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.date_period"><fo:page-number-citation ref-id="date_time.gregorian.date_period"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.date_iterators">Date Iterators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.date_iterators"><fo:page-number-citation ref-id="date_time.gregorian.date_iterators"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.date_algorithms">Date Generators/Algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.date_algorithms"><fo:page-number-citation ref-id="date_time.gregorian.date_algorithms"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.gregorian_calendar">Gregorian Calendar</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.gregorian_calendar"><fo:page-number-citation ref-id="date_time.gregorian.gregorian_calendar"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.gregorian.day_clock_class">Class day_clock</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.gregorian.day_clock_class"><fo:page-number-citation ref-id="date_time.gregorian.day_clock_class"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.posix_time">Posix Time</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.posix_time"><fo:page-number-citation ref-id="date_time.posix_time"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.date_time.posix_time" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.posix_time.ptime_class">Ptime Class</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.posix_time.ptime_class"><fo:page-number-citation ref-id="date_time.posix_time.ptime_class"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.posix_time.time_duration">Time Duration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.posix_time.time_duration"><fo:page-number-citation ref-id="date_time.posix_time.time_duration"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.posix_time.time_period">Time Period</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.posix_time.time_period"><fo:page-number-citation ref-id="date_time.posix_time.time_period"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.posix_time.time_iterators">Time Iterators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.posix_time.time_iterators"><fo:page-number-citation ref-id="date_time.posix_time.time_iterators"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.posix_time.local_time_adjust">Local Time Adjustment</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.posix_time.local_time_adjust"><fo:page-number-citation ref-id="date_time.posix_time.local_time_adjust"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.details">Details</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.details"><fo:page-number-citation ref-id="date_time.details"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.date_time.details" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.calculations">Calculations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.calculations"><fo:page-number-citation ref-id="date_time.calculations"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.design_goals">Design Goals</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.design_goals"><fo:page-number-citation ref-id="date_time.design_goals"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.tradeoffs">Tradeoffs: Stability, Predictability, and Approximations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.tradeoffs"><fo:page-number-citation ref-id="date_time.tradeoffs"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.serialization">Serialization</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.serialization"><fo:page-number-citation ref-id="date_time.serialization"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.terminology">Terminology</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.terminology"><fo:page-number-citation ref-id="date_time.terminology"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.references">References</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.references"><fo:page-number-citation ref-id="date_time.references"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.buildinfo">Build-Compiler Information</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.buildinfo"><fo:page-number-citation ref-id="date_time.buildinfo"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.tests">Tests</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.tests"><fo:page-number-citation ref-id="date_time.tests"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.changes">Change History</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.changes"><fo:page-number-citation ref-id="date_time.changes"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.acknowledgements">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.acknowledgements"><fo:page-number-citation ref-id="date_time.acknowledgements"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples">Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples"><fo:page-number-citation ref-id="date_time.examples"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.date_time.examples" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.general_usage_examples">General Usage Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.general_usage_examples"><fo:page-number-citation ref-id="date_time.examples.general_usage_examples"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.dates_as_strings">Dates as Strings</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.dates_as_strings"><fo:page-number-citation ref-id="date_time.examples.dates_as_strings"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.days_alive">Days Alive</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.days_alive"><fo:page-number-citation ref-id="date_time.examples.days_alive"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.days_between_new_year">Days Between New Years</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.days_between_new_year"><fo:page-number-citation ref-id="date_time.examples.days_between_new_year"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.end_of_month_day">End of the Months</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.end_of_month_day"><fo:page-number-citation ref-id="date_time.examples.end_of_month_day"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.localization">Localization Demonstration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.localization"><fo:page-number-citation ref-id="date_time.examples.localization"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.date_period_calc">Date Period Calculations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.date_period_calc"><fo:page-number-citation ref-id="date_time.examples.date_period_calc"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.print_holidays">Print Holidays</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.print_holidays"><fo:page-number-citation ref-id="date_time.examples.print_holidays"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.print_month">Print Month</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.print_month"><fo:page-number-citation ref-id="date_time.examples.print_month"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.month_add">Month Adding</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.month_add"><fo:page-number-citation ref-id="date_time.examples.month_add"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.time_math">Time Math</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.time_math"><fo:page-number-citation ref-id="date_time.examples.time_math"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.print_hours">Print Hours</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.print_hours"><fo:page-number-citation ref-id="date_time.examples.print_hours"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.local_utc_conversion">Local to UTC Conversion</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.local_utc_conversion"><fo:page-number-citation ref-id="date_time.examples.local_utc_conversion"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.examples.time_periods">Time Periods</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.examples.time_periods"><fo:page-number-citation ref-id="date_time.examples.time_periods"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time.doxy">Library Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time.doxy"><fo:page-number-citation ref-id="date_time.doxy"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.date_time.doxy" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="date_time_reference">Date Time Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="date_time_reference"><fo:page-number-citation ref-id="date_time_reference"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="gregorian_reference">Gregorian Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="gregorian_reference"><fo:page-number-citation ref-id="gregorian_reference"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="posix_time_reference">Posix Time Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="posix_time_reference"><fo:page-number-citation ref-id="posix_time_reference"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function">Boost.Function</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function"><fo:page-number-citation ref-id="function"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.function" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.intro">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.intro"><fo:page-number-citation ref-id="function.intro"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.history">History &amp; Compatibility Notes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.history"><fo:page-number-citation ref-id="function.history"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.tutorial">Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.tutorial"><fo:page-number-citation ref-id="function.tutorial"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.function.tutorial" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id501106">Basic Usage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id501106"><fo:page-number-citation ref-id="id501106"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id501416">Free functions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id501416"><fo:page-number-citation ref-id="id501416"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id501448">Member functions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id501448"><fo:page-number-citation ref-id="id501448"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id501610">References to Function Objects</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id501610"><fo:page-number-citation ref-id="id501610"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id501758">Comparing Boost.Function function objects</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id501758"><fo:page-number-citation ref-id="id501758"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.reference"><fo:page-number-citation ref-id="function.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.function.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.definitions">Definitions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.definitions"><fo:page-number-citation ref-id="function.definitions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="header.boost.function.hpp">Header &lt;boost/function.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="header.boost.function.hpp"><fo:page-number-citation ref-id="header.boost.function.hpp"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id330862">Header &lt;boost/function_equal.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id330862"><fo:page-number-citation ref-id="id330862"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.faq">Frequently Asked Questions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.faq"><fo:page-number-citation ref-id="function.faq"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.misc">Miscellaneous Notes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.misc"><fo:page-number-citation ref-id="function.misc"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.function.misc" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id513618">Boost.Function vs. Function Pointers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id513618"><fo:page-number-citation ref-id="id513618"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id513673">Performance</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id513673"><fo:page-number-citation ref-id="id513673"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id513718">Combatting virtual function "bloat"</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id513718"><fo:page-number-citation ref-id="id513718"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id513755">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id513755"><fo:page-number-citation ref-id="id513755"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.testsuite">Testsuite</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.testsuite"><fo:page-number-citation ref-id="function.testsuite"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.function.testsuite" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.testsuite.acceptance">Acceptance tests</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.testsuite.acceptance"><fo:page-number-citation ref-id="function.testsuite.acceptance"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="function.testsuite.negative">Negative tests</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="function.testsuite.negative"><fo:page-number-citation ref-id="function.testsuite.negative"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda">Boost.Lambda</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda"><fo:page-number-citation ref-id="lambda"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.lambda" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="introduction">In a nutshell</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="introduction"><fo:page-number-citation ref-id="introduction"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.getting_started">Getting Started</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.getting_started"><fo:page-number-citation ref-id="lambda.getting_started"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.lambda.getting_started" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id514454">Installing the library</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id514454"><fo:page-number-citation ref-id="id514454"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id514750">Conventions used in this document</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id514750"><fo:page-number-citation ref-id="id514750"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id514778">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id514778"><fo:page-number-citation ref-id="id514778"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.id514778" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id514782">Motivation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id514782"><fo:page-number-citation ref-id="id514782"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id515056">Introduction to lambda expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id515056"><fo:page-number-citation ref-id="id515056"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.using_library">Using the library</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.using_library"><fo:page-number-citation ref-id="lambda.using_library"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.lambda.using_library" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.introductory_examples">Introductory Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.introductory_examples"><fo:page-number-citation ref-id="lambda.introductory_examples"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.parameter_and_return_types">Parameter and return types of lambda functors</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.parameter_and_return_types"><fo:page-number-citation ref-id="lambda.parameter_and_return_types"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.actual_arguments_to_lambda_functors">About actual arguments to lambda functors</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.actual_arguments_to_lambda_functors"><fo:page-number-citation ref-id="lambda.actual_arguments_to_lambda_functors"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.storing_bound_arguments">Storing bound arguments in lambda functions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.storing_bound_arguments"><fo:page-number-citation ref-id="lambda.storing_bound_arguments"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.le_in_details">Lambda expressions in details</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.le_in_details"><fo:page-number-citation ref-id="lambda.le_in_details"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.lambda.le_in_details" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.placeholders">Placeholders</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.placeholders"><fo:page-number-citation ref-id="lambda.placeholders"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.operator_expressions">Operator expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.operator_expressions"><fo:page-number-citation ref-id="lambda.operator_expressions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.bind_expressions">Bind expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.bind_expressions"><fo:page-number-citation ref-id="lambda.bind_expressions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.overriding_deduced_return_type">Overriding the deduced return type</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.overriding_deduced_return_type"><fo:page-number-citation ref-id="lambda.overriding_deduced_return_type"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.delaying_constants_and_variables">Delaying constants and variables</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.delaying_constants_and_variables"><fo:page-number-citation ref-id="lambda.delaying_constants_and_variables"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.lambda_expressions_for_control_structures">Lambda expressions for control structures</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.lambda_expressions_for_control_structures"><fo:page-number-citation ref-id="lambda.lambda_expressions_for_control_structures"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.exceptions">Exceptions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.exceptions"><fo:page-number-citation ref-id="lambda.exceptions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.construction_and_destruction">Construction and destruction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.construction_and_destruction"><fo:page-number-citation ref-id="lambda.construction_and_destruction"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id518957">Special lambda expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id518957"><fo:page-number-citation ref-id="id518957"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id519440">Casts, sizeof and typeid</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id519440"><fo:page-number-citation ref-id="id519440"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.nested_stl_algorithms">Nesting STL algorithm invocations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.nested_stl_algorithms"><fo:page-number-citation ref-id="lambda.nested_stl_algorithms"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="lambda.extending">Extending return type deduction system</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="lambda.extending"><fo:page-number-citation ref-id="lambda.extending"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id521347">Practical considerations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id521347"><fo:page-number-citation ref-id="id521347"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.id521347" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id521351">Performance</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id521351"><fo:page-number-citation ref-id="id521351"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id521682">About compiling</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id521682"><fo:page-number-citation ref-id="id521682"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id521720">Portability</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id521720"><fo:page-number-citation ref-id="id521720"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id521979">Relation to other Boost libraries</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id521979"><fo:page-number-citation ref-id="id521979"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.id521979" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id521983">Boost Function</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id521983"><fo:page-number-citation ref-id="id521983"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id522068">Boost Bind</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id522068"><fo:page-number-citation ref-id="id522068"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id522202">Contributors</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id522202"><fo:page-number-citation ref-id="id522202"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options">Boost.Program_options</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options"><fo:page-number-citation ref-id="program_options"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.program_options" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id522718">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id522718"><fo:page-number-citation ref-id="id522718"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options.tutorial">Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options.tutorial"><fo:page-number-citation ref-id="program_options.tutorial"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.program_options.tutorial" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id522798">Getting Started</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id522798"><fo:page-number-citation ref-id="id522798"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id522935">Option Details</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id522935"><fo:page-number-citation ref-id="id522935"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id523095">Multiple Sources</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id523095"><fo:page-number-citation ref-id="id523095"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options.overview">Library Overview</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options.overview"><fo:page-number-citation ref-id="program_options.overview"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.program_options.overview" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id523322">Options Description Component</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id523322"><fo:page-number-citation ref-id="id523322"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id523727">Parsers Component</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id523727"><fo:page-number-citation ref-id="id523727"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id523804">Storage Component</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id523804"><fo:page-number-citation ref-id="id523804"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id523895">Annotated List of Symbols</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id523895"><fo:page-number-citation ref-id="id523895"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options.howto">How To</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options.howto"><fo:page-number-citation ref-id="program_options.howto"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.program_options.howto" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524031">Non-conventional Syntax</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524031"><fo:page-number-citation ref-id="id524031"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524089">Response Files</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524089"><fo:page-number-citation ref-id="id524089"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524170">Winmain Command Line</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524170"><fo:page-number-citation ref-id="id524170"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524211">Option Groups and Hidden Options</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524211"><fo:page-number-citation ref-id="id524211"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524344">Custom Validators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524344"><fo:page-number-citation ref-id="id524344"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524437">Unicode Support</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524437"><fo:page-number-citation ref-id="id524437"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options.design">Design Discussion</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options.design"><fo:page-number-citation ref-id="program_options.design"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.program_options.design" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options.design.unicode">Unicode Support</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options.design.unicode"><fo:page-number-citation ref-id="program_options.design.unicode"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id524912">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id524912"><fo:page-number-citation ref-id="id524912"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="program_options.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="program_options.reference"><fo:page-number-citation ref-id="program_options.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.program_options.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id246856">Header &lt;boost/program_options/cmdline.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id246856"><fo:page-number-citation ref-id="id246856"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id436818">Header &lt;boost/program_options/environment_iterator.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id436818"><fo:page-number-citation ref-id="id436818"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id280769">Header &lt;boost/program_options/eof_iterator.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id280769"><fo:page-number-citation ref-id="id280769"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id427440">Header &lt;boost/program_options/errors.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id427440"><fo:page-number-citation ref-id="id427440"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id419627">Header &lt;boost/program_options/option.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id419627"><fo:page-number-citation ref-id="id419627"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id258673">Header &lt;boost/program_options/options_description.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id258673"><fo:page-number-citation ref-id="id258673"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id225750">Header &lt;boost/program_options/parsers.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id225750"><fo:page-number-citation ref-id="id225750"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id420630">Header &lt;boost/program_options/positional_options.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id420630"><fo:page-number-citation ref-id="id420630"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id391535">Header &lt;boost/program_options/value_semantic.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id391535"><fo:page-number-citation ref-id="id391535"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id361047">Header &lt;boost/program_options/variables_map.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id361047"><fo:page-number-citation ref-id="id361047"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id401803">Header &lt;boost/program_options/version.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id401803"><fo:page-number-citation ref-id="id401803"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="ref">Boost.Ref</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ref"><fo:page-number-citation ref-id="ref"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.ref" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="ref.intro">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ref.intro"><fo:page-number-citation ref-id="ref.intro"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="ref.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ref.reference"><fo:page-number-citation ref-id="ref.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.ref.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="header.boost.ref.hpp">Header &lt;boost/ref.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="header.boost.ref.hpp"><fo:page-number-citation ref-id="header.boost.ref.hpp"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="ref.ack">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ref.ack"><fo:page-number-citation ref-id="ref.ack"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="signals">Boost.Signals</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="signals"><fo:page-number-citation ref-id="signals"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.signals" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id541200">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id541200"><fo:page-number-citation ref-id="id541200"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="signals.tutorial">Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="signals.tutorial"><fo:page-number-citation ref-id="signals.tutorial"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.signals.tutorial" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id541262">How to Read this Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id541262"><fo:page-number-citation ref-id="id541262"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id541327">Compatibility Note</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id541327"><fo:page-number-citation ref-id="id541327"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id541420">Hello, World! (Beginner)</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id541420"><fo:page-number-citation ref-id="id541420"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id541554">Calling multiple slots</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id541554"><fo:page-number-citation ref-id="id541554"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id541904">Passing values to and from slots</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id541904"><fo:page-number-citation ref-id="id541904"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id542714">Connection Management</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id542714"><fo:page-number-citation ref-id="id542714"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id543351">Linking against the Signals library</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id543351"><fo:page-number-citation ref-id="id543351"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="signals.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="signals.reference"><fo:page-number-citation ref-id="signals.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.signals.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="header.boost.signal.hpp">Header &lt;boost/signal.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="header.boost.signal.hpp"><fo:page-number-citation ref-id="header.boost.signal.hpp"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id341848">Header &lt;boost/signals/slot.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id341848"><fo:page-number-citation ref-id="id341848"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id225819">Header &lt;boost/signals/trackable.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id225819"><fo:page-number-citation ref-id="id225819"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id490968">Header &lt;boost/signals/connection.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id490968"><fo:page-number-citation ref-id="id490968"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id234067">Header &lt;boost/visit_each.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id234067"><fo:page-number-citation ref-id="id234067"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id236836">Header &lt;boost/last_value.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id236836"><fo:page-number-citation ref-id="id236836"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id548866">Frequently Asked Questions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id548866"><fo:page-number-citation ref-id="id548866"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id548972">Design Overview</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id548972"><fo:page-number-citation ref-id="id548972"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.id548972" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id548982">Type Erasure</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id548982"><fo:page-number-citation ref-id="id548982"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549053"><fo:inline font-family="monospace">connection</fo:inline> class</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549053"><fo:page-number-citation ref-id="id549053"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549176">Slot Call Iterator</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549176"><fo:page-number-citation ref-id="id549176"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549344"><fo:inline font-family="monospace">visit_each</fo:inline> function template</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549344"><fo:page-number-citation ref-id="id549344"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549496">Design Rationale</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549496"><fo:page-number-citation ref-id="id549496"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.id549496" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549506">Choice of Slot Definitions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549506"><fo:page-number-citation ref-id="id549506"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549596">User-level Connection Management</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549596"><fo:page-number-citation ref-id="id549596"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549758">Combiner Interface</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549758"><fo:page-number-citation ref-id="id549758"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id549934">Connection Interfaces: +=  operator</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id549934"><fo:page-number-citation ref-id="id549934"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id550109"><fo:inline font-family="monospace">trackable</fo:inline> rationale</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id550109"><fo:page-number-citation ref-id="id550109"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id550292">Comparison with other Signal/Slot implementations</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id550292"><fo:page-number-citation ref-id="id550292"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="signals.tests">Testsuite</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="signals.tests"><fo:page-number-citation ref-id="signals.tests"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.signals.tests" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id550410">Acceptance tests</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id550410"><fo:page-number-citation ref-id="id550410"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo">Boost String Algorithms Library</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo"><fo:page-number-citation ref-id="string_algo"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.string_algo" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.intro">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.intro"><fo:page-number-citation ref-id="string_algo.intro"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.usage">Usage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.usage"><fo:page-number-citation ref-id="string_algo.usage"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.string_algo.usage" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id550844">First Example</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id550844"><fo:page-number-citation ref-id="id550844"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551052">Case conversion</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551052"><fo:page-number-citation ref-id="id551052"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551104">Predicates and Classification</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551104"><fo:page-number-citation ref-id="id551104"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551189">Trimming</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551189"><fo:page-number-citation ref-id="id551189"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551249">Find algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551249"><fo:page-number-citation ref-id="id551249"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551367">Replace Algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551367"><fo:page-number-citation ref-id="id551367"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551484">Find Iterator</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551484"><fo:page-number-citation ref-id="id551484"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551587">Split</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551587"><fo:page-number-citation ref-id="id551587"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.quickref">Quick Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.quickref"><fo:page-number-citation ref-id="string_algo.quickref"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.string_algo.quickref" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id551727">Algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id551727"><fo:page-number-citation ref-id="id551727"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id552984">Finders and Formatters</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id552984"><fo:page-number-citation ref-id="id552984"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id553234">Iterators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id553234"><fo:page-number-citation ref-id="id553234"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id553290">Classification</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id553290"><fo:page-number-citation ref-id="id553290"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.design">Design Topics</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.design"><fo:page-number-citation ref-id="string_algo.design"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.string_algo.design" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.string">String Representation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.string"><fo:page-number-citation ref-id="string_algo.string"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.iterator_range"><fo:inline font-family="monospace">iterator_range</fo:inline> class</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.iterator_range"><fo:page-number-citation ref-id="string_algo.iterator_range"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.collection_traits">Collection Traits</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.collection_traits"><fo:page-number-citation ref-id="string_algo.collection_traits"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.sequence_traits">Sequence Traits</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.sequence_traits"><fo:page-number-citation ref-id="string_algo.sequence_traits"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.find">Find Algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.find"><fo:page-number-citation ref-id="string_algo.find"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.replace">Replace Algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.replace"><fo:page-number-citation ref-id="string_algo.replace"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.split">Find Iterators &amp; Split Algorithms</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.split"><fo:page-number-citation ref-id="string_algo.split"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.exception">Exception Safety</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.exception"><fo:page-number-citation ref-id="string_algo.exception"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.concept">Concepts</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.concept"><fo:page-number-citation ref-id="string_algo.concept"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.string_algo.concept" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id554583">Definitions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id554583"><fo:page-number-citation ref-id="id554583"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.finder_concept">Finder Concept</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.finder_concept"><fo:page-number-citation ref-id="string_algo.finder_concept"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.formatter_concept">Formatter concept</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.formatter_concept"><fo:page-number-citation ref-id="string_algo.formatter_concept"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.reference"><fo:page-number-citation ref-id="string_algo.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.string_algo.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id350445">Header &lt;boost/algorithm/string/case_conv.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id350445"><fo:page-number-citation ref-id="id350445"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id388523">Header &lt;boost/algorithm/string/classification.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id388523"><fo:page-number-citation ref-id="id388523"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id407166">Header &lt;boost/algorithm/string/collection_traits.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id407166"><fo:page-number-citation ref-id="id407166"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id266856">Header &lt;boost/algorithm/string/compare.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id266856"><fo:page-number-citation ref-id="id266856"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id336627">Header &lt;boost/algorithm/string/concept.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id336627"><fo:page-number-citation ref-id="id336627"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id228929">Header &lt;boost/algorithm/string/constants.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id228929"><fo:page-number-citation ref-id="id228929"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id236631">Header &lt;boost/algorithm/string/erase.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id236631"><fo:page-number-citation ref-id="id236631"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id448104">Header &lt;boost/algorithm/string/find.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id448104"><fo:page-number-citation ref-id="id448104"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id333397">Header &lt;boost/algorithm/string/find_format.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id333397"><fo:page-number-citation ref-id="id333397"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id254240">Header &lt;boost/algorithm/string/find_iterator.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id254240"><fo:page-number-citation ref-id="id254240"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id383225">Header &lt;boost/algorithm/string/finder.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id383225"><fo:page-number-citation ref-id="id383225"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id267193">Header &lt;boost/algorithm/string/formatter.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id267193"><fo:page-number-citation ref-id="id267193"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id365349">Header &lt;boost/algorithm/string/iterator_range.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id365349"><fo:page-number-citation ref-id="id365349"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id366812">Header &lt;boost/algorithm/string/predicate.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id366812"><fo:page-number-citation ref-id="id366812"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id326535">Header &lt;boost/algorithm/string/regex.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id326535"><fo:page-number-citation ref-id="id326535"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id227790">Header &lt;boost/algorithm/string/regex_find_format.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id227790"><fo:page-number-citation ref-id="id227790"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id439791">Header &lt;boost/algorithm/string/replace.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id439791"><fo:page-number-citation ref-id="id439791"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id264095">Header &lt;boost/algorithm/string/sequence_traits.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id264095"><fo:page-number-citation ref-id="id264095"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id477625">Header &lt;boost/algorithm/string/split.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id477625"><fo:page-number-citation ref-id="id477625"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id349546">Header &lt;boost/algorithm/string/std_containers_traits.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id349546"><fo:page-number-citation ref-id="id349546"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id299529">Header &lt;boost/algorithm/string.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id299529"><fo:page-number-citation ref-id="id299529"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id263316">Header &lt;boost/algorithm/string_regex.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id263316"><fo:page-number-citation ref-id="id263316"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id263327">Header &lt;boost/algorithm/string/trim.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id263327"><fo:page-number-citation ref-id="id263327"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.rationale">Rationale</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.rationale"><fo:page-number-citation ref-id="string_algo.rationale"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.string_algo.rationale" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id590829">Locales</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id590829"><fo:page-number-citation ref-id="id590829"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.regex">Regular Expressions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.regex"><fo:page-number-citation ref-id="string_algo.regex"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.env">Environment</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.env"><fo:page-number-citation ref-id="string_algo.env"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.string_algo.env" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id590941">Build</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id590941"><fo:page-number-citation ref-id="id590941"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id590962">Examples</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id590962"><fo:page-number-citation ref-id="id590962"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id590975">Tests</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id590975"><fo:page-number-citation ref-id="id590975"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id590986">Portability</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id590986"><fo:page-number-citation ref-id="id590986"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.credits">Credits</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.credits"><fo:page-number-citation ref-id="string_algo.credits"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.string_algo.credits" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="string_algo.ack">Acknowledgments</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="string_algo.ack"><fo:page-number-citation ref-id="string_algo.ack"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads"><fo:inline font-weight="bold">Boost.Threads</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads"><fo:page-number-citation ref-id="threads"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.threads" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.overview">Overview</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.overview"><fo:page-number-citation ref-id="threads.overview"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.threads.overview" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.introduction">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.introduction"><fo:page-number-citation ref-id="threads.introduction"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id591199">Dangers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id591199"><fo:page-number-citation ref-id="id591199"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id591397">C++ Standard Library usage in multithreaded programs</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id591397"><fo:page-number-citation ref-id="id591397"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id591558">Common guarantees for all <fo:inline font-weight="bold">Boost.Threads</fo:inline> components</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id591558"><fo:page-number-citation ref-id="id591558"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.design">Design</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.design"><fo:page-number-citation ref-id="threads.design"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.threads.design" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.design.goals">Goals</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.design.goals"><fo:page-number-citation ref-id="threads.design.goals"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id591885">Iterative Phases</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id591885"><fo:page-number-citation ref-id="id591885"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id591920">Phase 1, Synchronization Primitives</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id591920"><fo:page-number-citation ref-id="id591920"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.design.phase2">Phase 2, Thread Management and Thread Specific Storage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.design.phase2"><fo:page-number-citation ref-id="threads.design.phase2"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id592079">The Next Phase</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id592079"><fo:page-number-citation ref-id="id592079"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.concepts">Concepts</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.concepts"><fo:page-number-citation ref-id="threads.concepts"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.threads.concepts" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.concepts.mutexes">Mutexes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.concepts.mutexes"><fo:page-number-citation ref-id="threads.concepts.mutexes"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.concepts.read-write-mutexes">Read/Write Mutexes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.concepts.read-write-mutexes"><fo:page-number-citation ref-id="threads.concepts.read-write-mutexes"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.rationale">Rationale</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.rationale"><fo:page-number-citation ref-id="threads.rationale"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.threads.rationale" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.rationale.Boost.Threads">Rationale for the Creation of <fo:inline font-weight="bold">Boost.Threads</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.rationale.Boost.Threads"><fo:page-number-citation ref-id="threads.rationale.Boost.Threads"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.rationale.primitives">Rationale for the Low Level Primitives Supported in <fo:inline font-weight="bold">Boost.Threads</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.rationale.primitives"><fo:page-number-citation ref-id="threads.rationale.primitives"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.rationale.locks">Rationale for the Lock Design</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.rationale.locks"><fo:page-number-citation ref-id="threads.rationale.locks"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.rationale.non-copyable">Rationale for NonCopyable Thread Type</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.rationale.non-copyable"><fo:page-number-citation ref-id="threads.rationale.non-copyable"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.rationale.events">Rationale for not providing <fo:inline font-style="italic">Event Variables</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.rationale.events"><fo:page-number-citation ref-id="threads.rationale.events"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.reference"><fo:page-number-citation ref-id="threads.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.threads.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id470450">Header &lt;boost/thread/barrier.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id470450"><fo:page-number-citation ref-id="id470450"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id525796">Header &lt;boost/thread/condition.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id525796"><fo:page-number-citation ref-id="id525796"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id417361">Header &lt;boost/thread/exceptions.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id417361"><fo:page-number-citation ref-id="id417361"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id405534">Header &lt;boost/thread/mutex.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id405534"><fo:page-number-citation ref-id="id405534"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id485587">Header &lt;boost/thread/once.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id485587"><fo:page-number-citation ref-id="id485587"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id462943">Header &lt;boost/thread/recursive_mutex.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id462943"><fo:page-number-citation ref-id="id462943"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id283850">Header &lt;boost/thread/read_write_mutex.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id283850"><fo:page-number-citation ref-id="id283850"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id277856">Header &lt;boost/thread/thread.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id277856"><fo:page-number-citation ref-id="id277856"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id479200">Header &lt;boost/thread/tss.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id479200"><fo:page-number-citation ref-id="id479200"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id253046">Header &lt;boost/thread/xtime.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id253046"><fo:page-number-citation ref-id="id253046"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.faq">Frequently Asked Questions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.faq"><fo:page-number-citation ref-id="threads.faq"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.configuration">Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.configuration"><fo:page-number-citation ref-id="thread.configuration"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.thread.configuration" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.configuration.public">Library Defined Public Macros</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.configuration.public"><fo:page-number-citation ref-id="thread.configuration.public"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.configuration.implementation">Library Defined Implementation Macros</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.configuration.implementation"><fo:page-number-citation ref-id="thread.configuration.implementation"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.build">Build</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.build"><fo:page-number-citation ref-id="thread.build"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.thread.build" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.build.building">Building the <fo:inline font-weight="bold">Boost.Threads</fo:inline> Libraries</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.build.building"><fo:page-number-citation ref-id="thread.build.building"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.build.testing">Testing the <fo:inline font-weight="bold">Boost.Threads</fo:inline> Libraries</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.build.testing"><fo:page-number-citation ref-id="thread.build.testing"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.implementation_notes">Implementation Notes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.implementation_notes"><fo:page-number-citation ref-id="threads.implementation_notes"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.threads.implementation_notes" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.implementation_notes.win32">Win32</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.implementation_notes.win32"><fo:page-number-citation ref-id="threads.implementation_notes.win32"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.release_notes">Release Notes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.release_notes"><fo:page-number-citation ref-id="threads.release_notes"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.threads.release_notes" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="threads.release_notes.boost_1_32_0">Boost 1.32.0</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="threads.release_notes.boost_1_32_0"><fo:page-number-citation ref-id="threads.release_notes.boost_1_32_0"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thread.acknowledgements">Acknowledgements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thread.acknowledgements"><fo:page-number-citation ref-id="thread.acknowledgements"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tribool">Boost.Tribool</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tribool"><fo:page-number-citation ref-id="tribool"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.tribool" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tribool.introduction">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tribool.introduction"><fo:page-number-citation ref-id="tribool.introduction"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tribool.tutorial">Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tribool.tutorial"><fo:page-number-citation ref-id="tribool.tutorial"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.tribool.tutorial" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id612895">Basic usage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id612895"><fo:page-number-citation ref-id="id612895"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id613368">Renaming the indeterminate state</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id613368"><fo:page-number-citation ref-id="id613368"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id613453"><fo:inline font-family="monospace">tribool</fo:inline> input/output</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id613453"><fo:page-number-citation ref-id="id613453"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tribool.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tribool.reference"><fo:page-number-citation ref-id="tribool.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.tribool.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id442636">Header &lt;boost/logic/tribool.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id442636"><fo:page-number-citation ref-id="id442636"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id506430">Header &lt;boost/logic/tribool_fwd.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id506430"><fo:page-number-citation ref-id="id506430"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id267011">Header &lt;boost/logic/tribool_io.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id267011"><fo:page-number-citation ref-id="id267011"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tribool.tests">Testsuite</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tribool.tests"><fo:page-number-citation ref-id="tribool.tests"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.tribool.tests" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="tribool.tests.acceptance">Acceptance tests</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tribool.tests.acceptance"><fo:page-number-citation ref-id="tribool.tests.acceptance"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant">Boost.Variant</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant"><fo:page-number-citation ref-id="variant"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.variant" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.intro">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.intro"><fo:page-number-citation ref-id="variant.intro"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.variant.intro" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.abstract">Abstract</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.abstract"><fo:page-number-citation ref-id="variant.abstract"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.motivation">Motivation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.motivation"><fo:page-number-citation ref-id="variant.motivation"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.tutorial">Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.tutorial"><fo:page-number-citation ref-id="variant.tutorial"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.variant.tutorial" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.tutorial.basic">Basic Usage</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.tutorial.basic"><fo:page-number-citation ref-id="variant.tutorial.basic"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.tutorial.advanced">Advanced Topics</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.tutorial.advanced"><fo:page-number-citation ref-id="variant.tutorial.advanced"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.reference"><fo:page-number-citation ref-id="variant.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.variant.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.concepts">Concepts</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.concepts"><fo:page-number-citation ref-id="variant.concepts"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="header.boost.variant.hpp">Header &lt;boost/variant.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="header.boost.variant.hpp"><fo:page-number-citation ref-id="header.boost.variant.hpp"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id262208">Header &lt;boost/variant/variant_fwd.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id262208"><fo:page-number-citation ref-id="id262208"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id516960">Header &lt;boost/variant/variant.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id516960"><fo:page-number-citation ref-id="id516960"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id267452">Header &lt;boost/variant/recursive_variant.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id267452"><fo:page-number-citation ref-id="id267452"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id352292">Header &lt;boost/variant/recursive_wrapper.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id352292"><fo:page-number-citation ref-id="id352292"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id388564">Header &lt;boost/variant/apply_visitor.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id388564"><fo:page-number-citation ref-id="id388564"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id446657">Header &lt;boost/variant/get.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id446657"><fo:page-number-citation ref-id="id446657"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id503352">Header &lt;boost/variant/bad_visit.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id503352"><fo:page-number-citation ref-id="id503352"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id382199">Header &lt;boost/variant/static_visitor.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id382199"><fo:page-number-citation ref-id="id382199"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id500650">Header &lt;boost/variant/visitor_ptr.hpp&gt;</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id500650"><fo:page-number-citation ref-id="id500650"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.design">Design Overview</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.design"><fo:page-number-citation ref-id="variant.design"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.variant.design" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.design.never-empty">"Never-Empty" Guarantee</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.design.never-empty"><fo:page-number-citation ref-id="variant.design.never-empty"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.misc">Miscellaneous Notes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.misc"><fo:page-number-citation ref-id="variant.misc"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.libraries.variant.misc" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.versus-any">Boost.Variant vs. Boost.Any</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.versus-any"><fo:page-number-citation ref-id="variant.versus-any"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id630686">Portability</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id630686"><fo:page-number-citation ref-id="id630686"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.troubleshooting">Troubleshooting</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.troubleshooting"><fo:page-number-citation ref-id="variant.troubleshooting"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.ack">Acknowledgments</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.ack"><fo:page-number-citation ref-id="variant.ack"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="variant.refs">References</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="variant.refs"><fo:page-number-citation ref-id="variant.refs"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Documentation for some libraries is available in alternative formats:
       <fo:list-block id="id353294" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id353296" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="http://www.boost.org/doc/boost-doc-html.tar.gz">HTML (tarred, gzipped)</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id353302" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="http://www.boost.org/doc/boost.pdf">PDF</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id353308" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="http://www.boost.org/doc/boost-doc-man.tar.gz">Unix man pages</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id353316" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../boost.docbook">DocBook</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421573" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../boost.fo">XSL Formatting Objects</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id421580"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Libraries Listed Alphabetically</fo:marker><fo:block font-size="20.736pt">Libraries Listed Alphabetically</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id421584" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id421587" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="any">Any</fo:basic-link> - 
      Safe, generic container for single values of different value types
    , from Kevlin Henney.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421597" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="array">Array</fo:basic-link> - STL compliant container wrapper for arrays of constant size, from Nicolai Josuttis.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421608" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/bind/index.html">Bind</fo:basic-link> - Generalized binders for function/object/pointers and member functions, from Peter Dimov.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id406872" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/crc/index.html">CRC</fo:basic-link> - Cyclic Redundancy Code, from Daryle Walker.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id406881" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/call_traits.htm">Call Traits</fo:basic-link> - Defines types for passing parameters, from John Maddock and Howard Hinnant.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id406891" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/compatibility/index.html">Compatibility</fo:basic-link> - Help for non-conforming standard libraries, from Ralf Grosse-Kunstleve and Jens Maurer.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id406901" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/compose/index.htm">Compose</fo:basic-link> - Functional composition adapters for the STL, from Nicolai Josuttis.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id406911" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/compressed_pair.htm">Compressed Pair</fo:basic-link> - Empty member optimization, from John Maddock and Howard Hinnant.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id406921" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/concept_check/index.html">Concept Check</fo:basic-link> - Tools for generic programming, from Jeremy Siek.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id406929" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/config/index.html">Config</fo:basic-link> - Helps boost library developers adapt to compiler idiosyncrasies; not intended for library users, from John Maddock, Beman Dawes, and Vesa Karvonen.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351338" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/conversion/index.html">Conversion</fo:basic-link> - Numeric, polymorphic, and lexical casts, from Dave Abrahams and Kevlin Henney.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351347" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="date_time">Date Time</fo:basic-link> - A set of facilities to ease programming with dates and times.
  , from Jeff Garland.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351360" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/dynamic_bitset/index.html">Dynamic Bitset</fo:basic-link> - A runtime sized version of <fo:inline font-family="monospace">std::bitset</fo:inline>, from Jeremy Siek and Chuck Allison.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351375" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/filesystem/index.html">Filesystem</fo:basic-link> - Portable paths, iteration over directories, and other useful filesystem operations, from Beman Dawes.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351387" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/format/index.html">Format</fo:basic-link> - Type-safe 'printf-like' format operations, from Samuel Krempp.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351396" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="function">Function</fo:basic-link> - Function object wrappers for deferred calls or callbacks, from Douglas Gregor.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351409" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/functional/index.html">Functional</fo:basic-link> - Enhanced function object adaptors, from Mark Rodgers.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351420" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/graph/index.html">Graph</fo:basic-link> - Generic graph components and algorithms, from Jeremy Siek and University of Notre Dame Team.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351430" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/io/index.html">I/O State Savers</fo:basic-link> - Save I/O state to prevent jumbled data, from Daryle Walker.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351440" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/integer/index.html">Integer</fo:basic-link> - Headers to ease dealing with integral types, from various authors.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351450" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/numeric/interval/doc/index.html">Interval</fo:basic-link> - Extends the usual arithmetic functions to mathematical intervals, from Guillaume Melquiond, Herv&#xE9; Br&#xF6;nnimann, and Sylvain Pion.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351459" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/iterator_adaptors.htm">Iterator Adaptors</fo:basic-link> - Adapt a base type into a standard conforming iterator, from Dave Abrahams, Jeremy Siek, and John Potter.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351471" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="lambda">Lambda</fo:basic-link> - Define small unnamed function objects at the actual call site, and more, from Jaakko J&#xE4;rvi.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351786" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/mpl/index.html">MPL</fo:basic-link> - Template metaprogramming framework of compile-time algorithms, sequences and metafunction classes, from Aleksey Gurtovoy.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351796" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/math/index.html">Math</fo:basic-link> - Several contributions in the domain of mathematics, from various authors.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351806" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/math/doc/common_factor.html">Math/Common Factor</fo:basic-link> - Greatest common divisor and least common multiple, from Daryle Walker.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351816" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/math/octonion/index.html">Math/Octonion</fo:basic-link> - Octonions, from Hubert Holin.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351827" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/math/quaternion/index.html">Math/Quaternion</fo:basic-link> - Quaternions, from Hubert Holin.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351837" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/math/special_functions/index.html">Math/Special Functions</fo:basic-link> - Mathematical special functions such as atanh, sinc, and sinhc, from Hubert Holin.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351848" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/bind/mem_fn.html">Mem_fn</fo:basic-link> - Generalized binders for member functions, from Peter Dimov.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351858" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/multi_array/index.html">Multi Array</fo:basic-link> - Multidimensional containers and adaptors for arrays of contiguous data, from Ron Garcia.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351869" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/index.html">Operators</fo:basic-link> - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351879" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/optional/index.html">Optional</fo:basic-link> - Discriminated-union wrapper for optional values, from Fernando Cacciola.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351889" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/pool/index.html">Pool</fo:basic-link> - Memory pool management, from Steve Cleary.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351898" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/preprocessor/index.html">Preprocessor</fo:basic-link> - Preprocessor metaprogramming tools including repetition and recursion, from Vesa Karvonen and Paul Mensonides.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351907" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="program_options">Program_options</fo:basic-link> - 
      Facilities to obtain configuration data from command line, config files
      and other sources, from Vladimir Prus.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351921" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/property_map/index.html">Property Map</fo:basic-link> - Concepts defining interfaces which map key objects to value objects, from Jeremy Siek.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351932" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/python/index.html">Python</fo:basic-link> - Reflects C++ classes and functions into <fo:basic-link external-destination="http://www.python.org">Python</fo:basic-link>, from Dave Abrahams.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351949" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/random/index.html">Random</fo:basic-link> - A complete system for random number generation, from Jens Maurer.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351958" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/rational/index.html">Rational</fo:basic-link> - A rational number class, from Paul Moore.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351968" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="ref">Ref</fo:basic-link> - A utility library for passing references to generic functions, from Jaakko J&#xE4;rvi, Peter Dimov, Douglas Gregor, and Dave Abrahams.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351982" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/regex/index.html">Regex</fo:basic-link> - Regular expression library, from John Maddock.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351991" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/serialization/index.html">Serialization</fo:basic-link> - Serialization of C++ objects for persistence and marshalling, from Robert Ramey.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352002" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="signals">Signals</fo:basic-link> - Managed signals &amp; slots callback implementation, from Douglas Gregor.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352016" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/smart_ptr/index.html">Smart Pointer</fo:basic-link> - Five smart pointer class templates, from Greg Colvin, Beman Dawes, Peter Dimov, and Darin Adler.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352025" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/spirit/index.html">Spirit</fo:basic-link> - LL parser framework represents parsers directly as EBNF grammars in inlined C++, from Joel de Guzman and team .</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352033" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/static_assert/index.html">Static Assert</fo:basic-link> - Static assertions (compile time assertions), from John Maddock.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352044" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="string_algo">String Algorithms</fo:basic-link> - 
            A set of generic string-related algorithms and utilities
        , from Pavol Droba.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352058" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/test/index.html">Test</fo:basic-link> - Support for simple program testing, full unit testing, and for program execution monitoring, from Gennadiy Rozental.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352068" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="threads">Threads</fo:basic-link> - Portable C++ multi-threading, from William Kempf.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352080" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/timer/index.html">Timer</fo:basic-link> - Event timer, progress timer, and progress display classes, from Beman Dawes.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352090" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/tokenizer/index.html">Tokenizer</fo:basic-link> - Break of a string or other character sequence into a series of tokens, from John Bandela.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352100" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="tribool">Tribool</fo:basic-link> - Three-state boolean type, from Douglas Gregor.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352112" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/tuple/index.html">Tuple</fo:basic-link> - Ease definition of functions returning multiple values, and more, from Jaakko J&#xE4;rvi.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352123" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/type_traits/index.html">Type Traits</fo:basic-link> - Templates for fundamental properties of types, from John Maddock, Steve Cleary, and others .</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352134" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/index.html">Utility</fo:basic-link> - Class noncopyable  plus checked_delete, checked_array_delete, next,  prior  function templates, plus base-from-member idiom, from Dave Abrahams and others .</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352146" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="variant">Variant</fo:basic-link> - Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id352158" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/numeric/ublas/index.html">uBLAS</fo:basic-link> - Basic linear algebra for dense, packed and sparse matrices, from Joerg Walter and Mathias Koch.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id352169"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Libraries Listed by Category</fo:marker><fo:block font-size="20.736pt">Libraries Listed by Category</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id352173"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
          String and text processing
        </fo:marker><fo:block font-size="17.28pt">
          String and text processing
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id350891" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id350895" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/format/index.html">Format</fo:basic-link> - Type-safe 'printf-like' format operations, from Samuel Krempp.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id350904" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/regex/index.html">Regex</fo:basic-link> - Regular expression library, from John Maddock.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id350914" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="string_algo">String Algorithms</fo:basic-link> - 
            A set of generic string-related algorithms and utilities
        , from Pavol Droba.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id350926" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/tokenizer/index.html">Tokenizer</fo:basic-link> - Break of a string or other character sequence into a series of tokens, from John Bandela.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id350936"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
          Containers
        </fo:marker><fo:block font-size="17.28pt">
          Containers
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id350940" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id350943" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="array">Array</fo:basic-link> - STL compliant container wrapper for arrays of constant size, from Nicolai Josuttis.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id350955" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/dynamic_bitset/index.html">Dynamic Bitset</fo:basic-link> - A runtime sized version of <fo:inline font-family="monospace">std::bitset</fo:inline>, from Jeremy Siek and Chuck Allison.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id350971" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/graph/index.html">Graph</fo:basic-link> - Generic graph components and algorithms, from Jeremy Siek and University of Notre Dame Team.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id350981" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/multi_array/index.html">Multi Array</fo:basic-link> - Multidimensional containers and adaptors for arrays of contiguous data, from Ron Garcia.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id350992" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/property_map/index.html">Property Map</fo:basic-link> - Concepts defining interfaces which map key objects to value objects, from Jeremy Siek.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351004" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="variant">Variant</fo:basic-link> - Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id351015"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
          Iterators
        </fo:marker><fo:block font-size="17.28pt">
          Iterators
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id351019" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id351022" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/graph/index.html">Graph</fo:basic-link> - Generic graph components and algorithms, from Jeremy Siek and University of Notre Dame Team.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351032" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/iterator_adaptors.htm">Iterator Adaptors</fo:basic-link> - Adapt a base type into a standard conforming iterator, from Dave Abrahams, Jeremy Siek, and John Potter.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351044" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/index.html">Operators</fo:basic-link> - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351054" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/tokenizer/index.html">Tokenizer</fo:basic-link> - Break of a string or other character sequence into a series of tokens, from John Bandela.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id351064"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
          Algorithms
        </fo:marker><fo:block font-size="17.28pt">
          Algorithms
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id351068" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id351072" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/graph/index.html">Graph</fo:basic-link> - Generic graph components and algorithms, from Jeremy Siek and University of Notre Dame Team.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351082" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/index.html">Utility</fo:basic-link> - Class noncopyable  plus checked_delete, checked_array_delete, next,  prior  function templates, plus base-from-member idiom, from Dave Abrahams and others .</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id351093"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
          Function objects and higher-order programming
        </fo:marker><fo:block font-size="17.28pt">
          Function objects and higher-order programming
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id351098" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id351102" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/bind/index.html">Bind</fo:basic-link> - Generalized binders for function/object/pointers and member functions, from Peter Dimov.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351112" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/compose/index.htm">Compose</fo:basic-link> - Functional composition adapters for the STL, from Nicolai Josuttis.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351121" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="function">Function</fo:basic-link> - Function object wrappers for deferred calls or callbacks, from Douglas Gregor.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351133" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/functional/index.html">Functional</fo:basic-link> - Enhanced function object adaptors, from Mark Rodgers.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351144" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="lambda">Lambda</fo:basic-link> - Define small unnamed function objects at the actual call site, and more, from Jaakko J&#xE4;rvi.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351157" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/bind/mem_fn.html">Mem_fn</fo:basic-link> - Generalized binders for member functions, from Peter Dimov.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351166" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="ref">Ref</fo:basic-link> - A utility library for passing references to generic functions, from Jaakko J&#xE4;rvi, Peter Dimov, Douglas Gregor, and Dave Abrahams.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351179" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="signals">Signals</fo:basic-link> - Managed signals &amp; slots callback implementation, from Douglas Gregor.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id351192"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker"> 
          Generic programming
        </fo:marker><fo:block font-size="17.28pt"> 
          Generic programming
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id351196" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id351200" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/call_traits.htm">Call Traits</fo:basic-link> - Defines types for passing parameters, from John Maddock and Howard Hinnant.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351211" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/concept_check/index.html">Concept Check</fo:basic-link> - Tools for generic programming, from Jeremy Siek.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id351221" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/index.html">Operators</fo:basic-link> - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421615" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/property_map/index.html">Property Map</fo:basic-link> - Concepts defining interfaces which map key objects to value objects, from Jeremy Siek.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421626" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/static_assert/index.html">Static Assert</fo:basic-link> - Static assertions (compile time assertions), from John Maddock.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421636" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/type_traits/index.html">Type Traits</fo:basic-link> - Templates for fundamental properties of types, from John Maddock, Steve Cleary, and others .</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id421647"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker"> 
          Template metaprogramming
        </fo:marker><fo:block font-size="17.28pt"> 
          Template metaprogramming
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id421652" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id421655" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/mpl/index.html">MPL</fo:basic-link> - Template metaprogramming framework of compile-time algorithms, sequences and metafunction classes, from Aleksey Gurtovoy.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421666" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/static_assert/index.html">Static Assert</fo:basic-link> - Static assertions (compile time assertions), from John Maddock.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421676" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/type_traits/index.html">Type Traits</fo:basic-link> - Templates for fundamental properties of types, from John Maddock, Steve Cleary, and others .</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id421687"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker"> 
          Preprocessor metaprogramming
        </fo:marker><fo:block font-size="17.28pt"> 
          Preprocessor metaprogramming
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id421692" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id421696" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/preprocessor/index.html">Preprocessor</fo:basic-link> - Preprocessor metaprogramming tools including repetition and recursion, from Vesa Karvonen and Paul Mensonides.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id421707"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker"> 
          Concurrent programming
        </fo:marker><fo:block font-size="17.28pt"> 
          Concurrent programming
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id421712" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id421715" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="threads">Threads</fo:basic-link> - Portable C++ multi-threading, from William Kempf.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id421726"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
          Math and numerics
        </fo:marker><fo:block font-size="17.28pt">
          Math and numerics
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id421731" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id421734" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/integer/index.html">Integer</fo:basic-link> - Headers to ease dealing with integral types, from various authors.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421744" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/numeric/interval/doc/index.html">Interval</fo:basic-link> - Extends the usual arithmetic functions to mathematical intervals, from Guillaume Melquiond, Herv&#xE9; Br&#xF6;nnimann, and Sylvain Pion.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421757" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/math/index.html">Math</fo:basic-link> - Several contributions in the domain of mathematics, from various authors.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421767" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/math/doc/common_factor.html">Math/Common Factor</fo:basic-link> - Greatest common divisor and least common multiple, from Daryle Walker.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421778" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/math/octonion/index.html">Math/Octonion</fo:basic-link> - Octonions, from Hubert Holin.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421788" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/math/quaternion/index.html">Math/Quaternion</fo:basic-link> - Quaternions, from Hubert Holin.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421798" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/math/special_functions/index.html">Math/Special Functions</fo:basic-link> - Mathematical special functions such as atanh, sinc, and sinhc, from Hubert Holin.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421809" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/multi_array/index.html">Multi Array</fo:basic-link> - Multidimensional containers and adaptors for arrays of contiguous data, from Ron Garcia.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421820" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/index.html">Operators</fo:basic-link> - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421830" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/random/index.html">Random</fo:basic-link> - A complete system for random number generation, from Jens Maurer.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421840" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/rational/index.html">Rational</fo:basic-link> - A rational number class, from Paul Moore.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421850" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/numeric/ublas/index.html">uBLAS</fo:basic-link> - Basic linear algebra for dense, packed and sparse matrices, from Joerg Walter and Mathias Koch.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id421861"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
          Correctness and testing
        </fo:marker><fo:block font-size="17.28pt">
          Correctness and testing
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id421865" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id421869" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/concept_check/index.html">Concept Check</fo:basic-link> - Tools for generic programming, from Jeremy Siek.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421879" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/static_assert/index.html">Static Assert</fo:basic-link> - Static assertions (compile time assertions), from John Maddock.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421890" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/test/index.html">Test</fo:basic-link> - Support for simple program testing, full unit testing, and for program execution monitoring, from Gennadiy Rozental.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id421900"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
          Data structures
        </fo:marker><fo:block font-size="17.28pt">
          Data structures
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id421905" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id421908" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="any">Any</fo:basic-link> - 
      Safe, generic container for single values of different value types
    , from Kevlin Henney.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421920" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/compressed_pair.htm">Compressed Pair</fo:basic-link> - Empty member optimization, from John Maddock and Howard Hinnant.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421931" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/optional/index.html">Optional</fo:basic-link> - Discriminated-union wrapper for optional values, from Fernando Cacciola.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421941" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="program_options">Program_options</fo:basic-link> - 
      Facilities to obtain configuration data from command line, config files
      and other sources, from Vladimir Prus.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421953" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/tuple/index.html">Tuple</fo:basic-link> - Ease definition of functions returning multiple values, and more, from Jaakko J&#xE4;rvi.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421964" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="variant">Variant</fo:basic-link> - Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id421976"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
          Input/Output
        </fo:marker><fo:block font-size="17.28pt">
          Input/Output
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id421980" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id421984" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/format/index.html">Format</fo:basic-link> - Type-safe 'printf-like' format operations, from Samuel Krempp.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id421994" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/io/index.html">I/O State Savers</fo:basic-link> - Save I/O state to prevent jumbled data, from Daryle Walker.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422004" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/serialization/index.html">Serialization</fo:basic-link> - Serialization of C++ objects for persistence and marshalling, from Robert Ramey.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id422014"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
          Inter-language support
        </fo:marker><fo:block font-size="17.28pt">
          Inter-language support
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id422019" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id422023" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/python/index.html">Python</fo:basic-link> - Reflects C++ classes and functions into <fo:basic-link external-destination="http://www.python.org">Python</fo:basic-link>, from Dave Abrahams.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id422039"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
          Memory
        </fo:marker><fo:block font-size="17.28pt">
          Memory
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id422043" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id422046" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/pool/index.html">Pool</fo:basic-link> - Memory pool management, from Steve Cleary.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422056" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/smart_ptr/index.html">Smart Pointer</fo:basic-link> - Five smart pointer class templates, from Greg Colvin, Beman Dawes, Peter Dimov, and Darin Adler.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422066" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/index.html">Utility</fo:basic-link> - Class noncopyable  plus checked_delete, checked_array_delete, next,  prior  function templates, plus base-from-member idiom, from Dave Abrahams and others .</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id422077"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
          Parsing
        </fo:marker><fo:block font-size="17.28pt">
          Parsing
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id422081" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id422084" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/spirit/index.html">Spirit</fo:basic-link> - LL parser framework represents parsers directly as EBNF grammars in inlined C++, from Joel de Guzman and team .</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id422095"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker"> 
          Miscellaneous
        </fo:marker><fo:block font-size="17.28pt"> 
          Miscellaneous
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id422099" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id422103" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/crc/index.html">CRC</fo:basic-link> - Cyclic Redundancy Code, from Daryle Walker.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422112" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/compressed_pair.htm">Compressed Pair</fo:basic-link> - Empty member optimization, from John Maddock and Howard Hinnant.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422123" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/conversion/index.html">Conversion</fo:basic-link> - Numeric, polymorphic, and lexical casts, from Dave Abrahams and Kevlin Henney.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422134" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="date_time">Date Time</fo:basic-link> - A set of facilities to ease programming with dates and times.
  , from Jeff Garland.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422145" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/filesystem/index.html">Filesystem</fo:basic-link> - Portable paths, iteration over directories, and other useful filesystem operations, from Beman Dawes.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422157" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/optional/index.html">Optional</fo:basic-link> - Discriminated-union wrapper for optional values, from Fernando Cacciola.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422167" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/timer/index.html">Timer</fo:basic-link> - Event timer, progress timer, and progress display classes, from Beman Dawes.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422177" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="tribool">Tribool</fo:basic-link> - Three-state boolean type, from Douglas Gregor.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422188" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/utility/index.html">Utility</fo:basic-link> - Class noncopyable  plus checked_delete, checked_array_delete, next,  prior  function templates, plus base-from-member idiom, from Dave Abrahams and others .</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id422199"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker"> 
          Broken compiler workarounds
        </fo:marker><fo:block font-size="17.28pt"> 
          Broken compiler workarounds
        </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id422203" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id422207" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/compatibility/index.html">Compatibility</fo:basic-link> - Help for non-conforming standard libraries, from Ralf Grosse-Kunstleve and Jens Maurer.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422218" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/config/index.html">Config</fo:basic-link> - Helps boost library developers adapt to compiler idiosyncrasies; not intended for library users, from John Maddock, Beman Dawes, and Vesa Karvonen.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Any</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Any</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="any"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Boost.Any</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Kevlin Henney</fo:block></fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2001 Kevlin Henney</fo:block></fo:block></fo:block></fo:block><fo:block id="id422258"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="17.28pt">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There are times when a generic (in the sense of
    <fo:inline font-style="italic">general</fo:inline> as opposed to
    <fo:inline font-style="italic">template-based programming</fo:inline>) type is needed:
    variables that are truly variable, accommodating values of many
    other more specific types rather than C++'s normal strict and
    static types. We can distinguish three basic kinds of generic
    type:</fo:block><fo:list-block id="id422277" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id422278" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Converting types that can hold one of a number of
        possible value types, e.g. <fo:inline font-family="monospace">int</fo:inline> and
        <fo:inline font-family="monospace">string</fo:inline>, and freely convert between them, for
        instance interpreting <fo:inline font-family="monospace">5</fo:inline> as <fo:inline font-family="monospace">"5"</fo:inline> or
        vice-versa.  Such types are common in scripting and other
        interpreted
        languages. 
        <fo:inline font-family="monospace">boost::lexical_cast</fo:inline>
        supports such conversion functionality.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422319" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        Discriminated types that contain values of different types but
        do not attempt conversion between them, i.e. <fo:inline font-family="monospace">5</fo:inline> is
        held strictly as an <fo:inline font-family="monospace">int</fo:inline> and is not implicitly
        convertible either to <fo:inline font-family="monospace">"5"</fo:inline> or to
        <fo:inline font-family="monospace">5.0</fo:inline>. Their indifference to interpretation but
        awareness of type effectively makes them safe, generic
        containers of single values, with no scope for surprises from
        ambiguous conversions.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422354" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        Indiscriminate types that can refer to anything but are
        oblivious to the actual underlying type, entrusting all forms
        of access and interpretation to the programmer. This niche is
        dominated by <fo:inline font-family="monospace">void *</fo:inline>, which offers plenty of scope
        for surprising, undefined behavior.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link></fo:inline> class
    (based on the class of the same name described in <fo:basic-link external-destination="http://www.two-sdg.demon.co.uk/curbralan/papers/ValuedConversions.pdf">"Valued
    Conversions"</fo:basic-link> by Kevlin Henney, <fo:inline font-style="italic">C++
    Report</fo:inline> 12(7), July/August 2000) is a variant value type
    based on the second category. It supports copying of any value
    type and safe checked extraction of that value strictly against
    its type. A similar design, offering more appropriate operators,
    can be used for a generalized function adaptor,
    <fo:inline font-family="monospace">any_function</fo:inline>, a generalized iterator adaptor,
    <fo:inline font-family="monospace">any_iterator</fo:inline>, and other object types that need
    uniform runtime treatment but support only compile-time template
    parameter conformance.</fo:block></fo:block><fo:block id="id422419"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Examples</fo:marker><fo:block font-size="17.28pt">Examples</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following code demonstrates the syntax for using
    implicit conversions to and copying of any objects:</fo:block><fo:block id="id422428" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
#include &lt;list&gt;
#include &lt;boost/any.hpp&gt;

using <fo:basic-link internal-destination="any_cast">boost::any_cast</fo:basic-link>;
typedef std::list&lt;<fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link>&gt; many;

void append_int(many &amp; values, int value)
{
    <fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link> to_append = value;
    values.push_back(to_append);
}

void append_string(many &amp; values, const std::string &amp; value)
{
    values.push_back(value);
}

void append_char_ptr(many &amp; values, const char * value)
{
    values.push_back(value);
}

void append_any(many &amp; values, const <fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link> &amp; value)
{
    values.push_back(value);
}

void append_nothing(many &amp; values)
{
    values.push_back(<fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link>());
}
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following predicates follow on from the previous
    definitions and demonstrate the use of queries on any
    objects:</fo:block><fo:block id="id422492" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bool is_empty(const <fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link> &amp; operand)
{
    return operand.<fo:basic-link internal-destination="id141181-bb">empty</fo:basic-link>();
}

bool is_int(const <fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link> &amp; operand)
{
    return operand.<fo:basic-link internal-destination="id141206-bb">type</fo:basic-link>() == typeid(int);
}

bool is_char_ptr(const <fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link> &amp; operand)
{
    try
    {
        <fo:basic-link internal-destination="any_cast">any_cast</fo:basic-link>&lt;const char *&gt;(operand);
        return true;
    }
    catch(const <fo:basic-link internal-destination="bad_any_cast">boost::bad_any_cast</fo:basic-link> &amp;)
    {
        return false;
    }
}

bool is_string(const <fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link> &amp; operand)
{
    return <fo:basic-link internal-destination="any_cast">any_cast</fo:basic-link>&lt;std::string&gt;(&amp;operand);
}

void count_all(many &amp; values, std::ostream &amp; out)
{
    out &lt;&lt; "#empty == "
        &lt;&lt; std::count_if(values.begin(), values.end(), is_empty) &lt;&lt; std::endl;
    out &lt;&lt; "#int == "
        &lt;&lt; std::count_if(values.begin(), values.end(), is_int) &lt;&lt; std::endl;
    out &lt;&lt; "#const char * == "
        &lt;&lt; std::count_if(values.begin(), values.end(), is_char_ptr) &lt;&lt; std::endl;
    out &lt;&lt; "#string == "
        &lt;&lt; std::count_if(values.begin(), values.end(), is_string) &lt;&lt; std::endl;
}
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following type, patterned after the OMG's Property Service, defines name-value pairs for arbitrary value types:</fo:block><fo:block id="id422602" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct property
{
    property();
    property(const std::string &amp;, const <fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link> &amp;);

    std::string name;
    <fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link> value;
};

typedef std::list&lt;property&gt; properties;
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following base class demonstrates one approach to
    runtime polymorphism based callbacks that also require arbitrary
    argument types. The absence of virtual member templates requires
    that different solutions have different trade-offs in terms of
    efficiency, safety, and generality. Using a checked variant type
    offers one approach:</fo:block><fo:block id="id422636" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
class consumer
{
public:
    virtual void notify(const <fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp;) = 0;
    ...
};
</fo:block></fo:block><fo:block id="any.reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Reference</fo:marker><fo:block font-size="17.28pt">Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="any.ValueType"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt"><fo:inline font-style="italic">ValueType</fo:inline> requirements</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Values are strongly informational objects for which
      identity is not significant, i.e. the focus is principally on
      their state content and any behavior organized around
      that. Another distinguishing feature of values is their
      granularity: normally fine-grained objects representing simple
      concepts in the system such as quantities.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As the emphasis of a value lies in its state not its
      identity, values can be copied and typically assigned one to
      another, requiring the explicit or implicit definition of a
      public copy constructor and public assignment operator. Values
      typically live within other scopes, i.e. within objects or
      blocks, rather than on the heap. Values are therefore normally
      passed around and manipulated directly as variables or through
      references, but not as pointers that emphasize identity and
      indirection.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The specific requirements on value types to be used in an
      <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.any">any</fo:basic-link></fo:inline>
      are:</fo:block><fo:list-block id="id422705" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id422708" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A <fo:inline font-style="italic">ValueType</fo:inline> is
          <fo:inline font-style="italic">CopyConstructible</fo:inline> [20.1.3].</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422721" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A <fo:inline font-style="italic">ValueType</fo:inline> is
        optionally <fo:inline font-style="italic">Assignable</fo:inline> [23.1]. The strong
        exception-safety guarantee is required for all forms of
        assignment.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id422735" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The destructor for a
        <fo:inline font-style="italic">ValueType</fo:inline> upholds the no-throw
        exception-safety guarantee.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="header.boost.any.hpp"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/any.hpp">boost/any.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id422759" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="bad_any_cast">bad_any_cast</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="boost.any">any</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ValueType&gt; ValueType <fo:basic-link internal-destination="any_cast">any_cast</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ValueType&gt; <fo:inline font-weight="bold">const</fo:inline> ValueType * <fo:basic-link internal-destination="any_cast">any_cast</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.any">any</fo:basic-link> *);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ValueType&gt; ValueType * <fo:basic-link internal-destination="any_cast">any_cast</fo:basic-link>(<fo:basic-link internal-destination="boost.any">any</fo:basic-link> *);
}</fo:block><fo:block break-before="page"><fo:block id="bad_any_cast"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class bad_any_cast</fo:block></fo:block><fo:block space-after="1em">Class bad_any_cast <fo:inline font-family="serif">--</fo:inline> The exception thrown in the event of a failed
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="any_cast">any_cast</fo:basic-link></fo:inline> of an
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.any">any</fo:basic-link></fo:inline> value.</fo:block><fo:block>boost::bad_any_cast</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id422961"><fo:block/><fo:block id="id422962" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> bad_any_cast : <fo:inline font-weight="bold">public</fo:inline> std::bad_cast {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:basic-link internal-destination="id141415-bb">what</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id423024"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id423029" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:wrapper id="id141415-bb"/>what() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boost.any"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class any</fo:block></fo:block><fo:block space-after="1em">Class any <fo:inline font-family="serif">--</fo:inline> A class whose instances can hold instances of any
          type that satisfies <fo:basic-link internal-destination="any.ValueType">ValueType</fo:basic-link>
          requirements.</fo:block><fo:block>boost::any</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id423101"><fo:block/><fo:block id="id423102" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> any {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="boost.anyconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id141439-bb">any</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id141452-bb">any</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ValueType&gt; <fo:basic-link internal-destination="id140965-bb">any</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ValueType &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp; <fo:basic-link internal-destination="id141022-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ValueType&gt; <fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp; <fo:basic-link internal-destination="id141077-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ValueType &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id141007-bb">~any</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id141128-bb">modifiers</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp; <fo:basic-link internal-destination="id141132-bb">swap</fo:basic-link>(<fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id141177-bb">queries</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id141181-bb">empty</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::type_info &amp; <fo:basic-link internal-destination="id141206-bb">type</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id423381"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id423384"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">any construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="boost.anyconstruct-copy-destruct"/><fo:inline font-family="monospace">any</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id423399" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id423405" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id423408" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id141439-bb"/>any();</fo:block></fo:block><fo:list-block id="id423421" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id423424" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id141181-bb">empty</fo:basic-link>()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id423444" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id423446" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id141452-bb"/>any(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp; other);</fo:block></fo:block><fo:list-block id="id423473" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id423477" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> Copy constructor that copies content of
            <fo:inline font-family="monospace">other</fo:inline> into new instance, so that any content
            is equivalent in both type and value to the content of
            <fo:inline font-family="monospace">other</fo:inline>, or empty if <fo:inline font-family="monospace">other</fo:inline> is
            empty. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id423507" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>May fail with a
            <fo:inline font-family="monospace">std::bad_alloc</fo:inline>
            exception or any exceptions arising from the copy
            constructor of the contained type.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id423523" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id423525" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ValueType&gt; <fo:wrapper id="id140965-bb"/>any(<fo:inline font-weight="bold">const</fo:inline> ValueType &amp; value);</fo:block></fo:block><fo:list-block id="id423558" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id423562" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Makes a copy of <fo:inline font-family="monospace">value</fo:inline>, so
            that the initial content of the new instance is equivalent
            in both type and value to
            <fo:inline font-family="monospace">value</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id423585" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">std::bad_alloc</fo:inline>
            or any exceptions arising from the copy constructor of the
            contained type.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id423599" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id423601" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp; <fo:wrapper id="id141022-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp; rhs);</fo:block></fo:block><fo:list-block id="id423644" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id423647" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Copies content of <fo:inline font-family="monospace">rhs</fo:inline> into
            current instance, discarding previous content, so that the
            new content is equivalent in both type and value to the
            content of <fo:inline font-family="monospace">rhs</fo:inline>, or empty if
            <fo:inline font-family="monospace">rhs.<fo:basic-link internal-destination="id141181-bb">empty</fo:basic-link>()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id423685" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">std::bad_alloc</fo:inline>
            or any exceptions arising from the copy constructor of the
            contained type. Assignment satisfies the strong guarantee
            of exception safety.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id423700" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id423703" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ValueType&gt; <fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp; <fo:wrapper id="id141077-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> ValueType &amp; rhs);</fo:block></fo:block><fo:list-block id="id423751" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id423755" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Makes a copy of <fo:inline font-family="monospace">rhs</fo:inline>,
            discarding previous content, so that the new content of is
            equivalent in both type and value to
            <fo:inline font-family="monospace">rhs</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id423777" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">std::bad_alloc</fo:inline>
            or any exceptions arising from the copy constructor of the
            contained type. Assignment satisfies the strong guarantee
            of exception safety.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id423793" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id423795" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id141007-bb"/>~any();</fo:block></fo:block><fo:list-block id="id423808" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id423812" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Releases any and all resources used in
            management of instance.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id423821" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Nothing.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id423828"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">any modifiers</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id141128-bb"/><fo:inline font-family="monospace">any</fo:inline> modifiers</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id423842" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id423848" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id423851" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp; <fo:wrapper id="id141132-bb"/>swap(<fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp; rhs);</fo:block></fo:block><fo:list-block id="id423882" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id423886" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Exchange of the contents of
              <fo:inline font-family="monospace">*this</fo:inline> and
              <fo:inline font-family="monospace">rhs</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id423907" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">*this</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id423918" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Nothing.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id423926"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">any queries</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id141177-bb"/><fo:inline font-family="monospace">any</fo:inline> queries</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id423940" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id423946" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id423948" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id141181-bb"/>empty() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id423975" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id423978" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">true</fo:inline> if instance is
              empty, otherwise <fo:inline font-family="monospace">false</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id423998" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id424006" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id424008" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> std::type_info &amp; <fo:wrapper id="id141206-bb"/>type() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id424038" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id424041" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>the <fo:inline font-family="monospace">typeid</fo:inline> of the
              contained value if instance is non-empty, otherwise
              <fo:inline font-family="monospace">typeid(void)</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id424063" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Useful for querying against types known
              either at compile time or only at
              runtime.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="any_cast"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function any_cast</fo:block></fo:block><fo:block space-after="1em">Function any_cast <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Custom keyword cast for extracting a value
          of a given type from an
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.any">any</fo:basic-link></fo:inline>.</fo:block></fo:block><fo:block>boost::any_cast</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id424105"><fo:block/><fo:block id="id424106" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ValueType&gt; ValueType any_cast(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.any">any</fo:basic-link> &amp; operand);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ValueType&gt; <fo:inline font-weight="bold">const</fo:inline> ValueType * any_cast(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.any">any</fo:basic-link> * operand);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ValueType&gt; ValueType * any_cast(<fo:basic-link internal-destination="boost.any">any</fo:basic-link> * operand);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id424206"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id424210" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id424214" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> If passed a pointer, it returns a
          similarly qualified pointer to the value content if
          successful, otherwise null is returned. If passed a value or
          reference, it returns a copy of the value content if
          successful.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id424226" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Overloads taking an
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.any">any</fo:basic-link></fo:inline> pointer do not
          throw; the overload taking an
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.any">any</fo:basic-link></fo:inline> value or reference
          throws <fo:inline font-family="monospace"><fo:basic-link internal-destination="bad_any_cast">bad_any_cast</fo:basic-link></fo:inline> if
          unsuccessful.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id424268" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The value/reference version returns a
          copy because the C++ keyword casts return
          copies.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id424278"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Acknowledgements</fo:marker><fo:block font-size="17.28pt">Acknowledgements</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Doug Gregor ported the documentation to the BoostBook format.</fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Array</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Array</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="array"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Boost.Array</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Nicolai Josuttis</fo:block></fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2001-2004 Nicolai M. Josuttis</fo:block><fo:block><fo:block id="id424318"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Permission to copy, use, modify, sell and distribute this
      software is granted provided this copyright notice appears in
      all copies. This software is provided "as is" without express or
      implied warranty, and with no claim as to its suitability for
      any purpose.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="array.intro"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="17.28pt">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The C++ Standard Template Library STL as part of the C++
    Standard Library provides a framework for processing algorithms on
    different kind of containers. However, ordinary arrays don't
    provide the interface of STL containers (although, they provide
    the iterator interface of STL containers).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As replacement for ordinary arrays, the STL provides class
    <fo:inline font-family="monospace">std::vector</fo:inline>.  However,
    <fo:inline font-family="monospace">std::vector&lt;&gt;</fo:inline> provides
    the semantics of dynamic arrays. Thus, it manages data to be able
    to change the number of elements. This results in some overhead in
    case only arrays with static size are needed.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In his book, <fo:inline font-style="italic">Generic Programming and the
    STL</fo:inline>, Matthew H. Austern introduces a useful wrapper
    class for ordinary arrays with static size, called
    <fo:inline font-family="monospace">block</fo:inline>.  It is safer and has no worse performance than
    ordinary arrays. In <fo:inline font-style="italic">The C++ Programming
    Language</fo:inline>, 3rd edition, Bjarne Stroustrup introduces a
    similar class, called <fo:inline font-family="monospace">c_array</fo:inline>, which I (<fo:basic-link external-destination="http://www.josuttis.com">Nicolai Josuttis</fo:basic-link>) present
    slightly modified in my book <fo:inline font-style="italic">The C++ Standard Library -
    A Tutorial and Reference</fo:inline>, called
    <fo:inline font-family="monospace">carray</fo:inline>. This is the essence of these approaches
    spiced with many feedback from <fo:basic-link external-destination="http://www.boost.org">boost</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">After considering different names, we decided to name this
    class simply <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.array">array</fo:basic-link></fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note that this class is suggested to be part of the next
    Technical Report, which will extend the C++ Standard (see
    <fo:basic-link external-destination="">http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1548.htm</fo:basic-link>).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.array">array</fo:basic-link></fo:inline> fulfills most
    but not all of the requirements of "reversible containers" (see
    Section 23.1, [lib.container.requirements] of the C++
    Standard). The reasons array is not an reversible STL container is
    because:
      <fo:list-block id="id424465" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id424469" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>No constructors are provided.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id424473" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Elements may have an undetermined initial value (see <fo:basic-link internal-destination="array.rationale">the section called &#x201C;Design Rationale&#x201D;</fo:basic-link>).</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id424485" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="id227567">swap</fo:basic-link>() has no constant complexity.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id424496" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="id229934-bb">size</fo:basic-link>() is always constant, based on the second template argument of the type.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id424509" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The container provides no allocator support.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It doesn't fulfill the requirements of a "sequence" (see Section 23.1.1, [lib.sequence.reqmts] of the C++ Standard), except that:
      <fo:list-block id="id424518" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id424522" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="id227365-bb">front</fo:basic-link>() and <fo:basic-link internal-destination="id227401-bb">back</fo:basic-link>() are provided.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id424544" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="id227255-bb">operator[]</fo:basic-link> and <fo:basic-link internal-destination="id227310-bb">at</fo:basic-link>() are provided.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="array.reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Reference</fo:marker><fo:block font-size="17.28pt">Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="header.boost.array.hpp"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/array.hpp">boost/array.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id424587" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id227567">swap</fo:basic-link>(<fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id287139"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id287205"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id287261"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id287331"><fo:inline font-weight="bold">operator</fo:inline>&gt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id287385"><fo:inline font-weight="bold">operator</fo:inline>&lt;=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id287439"><fo:inline font-weight="bold">operator</fo:inline>&gt;=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);
}</fo:block><fo:block break-before="page"><fo:block id="boost.array"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template array</fo:block></fo:block><fo:block space-after="1em">Class template array <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">STL compliant container wrapper for arrays of constant size</fo:block></fo:block><fo:block>boost::array</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id425079"><fo:block/><fo:block id="id425080" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
<fo:inline font-weight="bold">class</fo:inline> array {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; value_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T*&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; iterator;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-weight="bold">const</fo:inline> T*&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; const_iterator;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::reverse_iterator&lt;iterator&gt;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; reverse_iterator;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::reverse_iterator&lt;const_iterator&gt; const_reverse_iterator;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T&amp;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; reference;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-weight="bold">const</fo:inline> T&amp;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; const_reference;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::size_t&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; size_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::ptrdiff_t&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; difference_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// static constants</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">static</fo:inline> <fo:inline font-weight="bold">const</fo:inline> size_type static_size = N;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="boost.arrayconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U&gt; array&amp; <fo:basic-link internal-destination="id229768-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;U, N&gt;&amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id229808-bb">iterator support</fo:basic-link></fo:inline>
&#xA0;&#xA0;iterator <fo:basic-link internal-destination="id229815-bb">begin</fo:basic-link>();
&#xA0;&#xA0;const_iterator <fo:basic-link internal-destination="id229822-bb">begin</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;iterator <fo:basic-link internal-destination="id229845-bb">end</fo:basic-link>();
&#xA0;&#xA0;const_iterator <fo:basic-link internal-destination="id229852-bb">end</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id229873-bb">reverse iterator support</fo:basic-link></fo:inline>
&#xA0;&#xA0;reverse_iterator <fo:basic-link internal-destination="id229880-bb">rbegin</fo:basic-link>();
&#xA0;&#xA0;const_reverse_iterator <fo:basic-link internal-destination="id229887-bb">rbegin</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;reverse_iterator <fo:basic-link internal-destination="id229906-bb">rend</fo:basic-link>();
&#xA0;&#xA0;const_reverse_iterator <fo:basic-link internal-destination="id229913-bb">rend</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id229930-bb">capacity</fo:basic-link></fo:inline>
&#xA0;&#xA0;size_type <fo:basic-link internal-destination="id229934-bb">size</fo:basic-link>();
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id227212-bb">empty</fo:basic-link>();
&#xA0;&#xA0;size_type <fo:basic-link internal-destination="id227231-bb">max_size</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id227251-bb">element access</fo:basic-link></fo:inline>
&#xA0;&#xA0;reference <fo:basic-link internal-destination="id227259-bb"><fo:inline font-weight="bold">operator</fo:inline>[]</fo:basic-link>(size_type);
&#xA0;&#xA0;const_reference <fo:basic-link internal-destination="id227274-bb"><fo:inline font-weight="bold">operator</fo:inline>[]</fo:basic-link>(size_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;reference <fo:basic-link internal-destination="id227314-bb">at</fo:basic-link>(size_type);
&#xA0;&#xA0;const_reference <fo:basic-link internal-destination="id227329-bb">at</fo:basic-link>(size_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;reference <fo:basic-link internal-destination="id227369-bb">front</fo:basic-link>();
&#xA0;&#xA0;const_reference <fo:basic-link internal-destination="id227376-bb">front</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;reference <fo:basic-link internal-destination="id227405-bb">back</fo:basic-link>();
&#xA0;&#xA0;const_reference <fo:basic-link internal-destination="id227412-bb">back</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> T* <fo:basic-link internal-destination="id227437-bb">data</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;T* <fo:basic-link internal-destination="id227458-bb">c_array</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id227478-bb">modifiers</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id227482-bb">swap</fo:basic-link>(<fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id227525-bb">assign</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> T&amp;);

&#xA0;&#xA0;T elems[N];
};

<fo:inline font-style="italic">// <fo:basic-link internal-destination="id227563-bb">specialized algorithms</fo:basic-link></fo:inline>
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id227567">swap</fo:basic-link>(<fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);

<fo:inline font-style="italic">// <fo:basic-link internal-destination="id287136-bb">comparisons</fo:basic-link></fo:inline>
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id287139"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id287205"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id287261"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id287331"><fo:inline font-weight="bold">operator</fo:inline>&gt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id287385"><fo:inline font-weight="bold">operator</fo:inline>&lt;=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id287439"><fo:inline font-weight="bold">operator</fo:inline>&gt;=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp;);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id426196"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id426200"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">array construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="boost.arrayconstruct-copy-destruct"/><fo:inline font-family="monospace">array</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id426214" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id426221" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id426223" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U&gt; array&amp; <fo:wrapper id="id229768-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;U, N&gt;&amp; other);</fo:block></fo:block><fo:list-block id="id426270" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id426273" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">std::copy(rhs.<fo:basic-link internal-destination="id229811-bb">begin</fo:basic-link>(),rhs.<fo:basic-link internal-destination="id229841-bb">end</fo:basic-link>(), <fo:basic-link internal-destination="id229811-bb">begin</fo:basic-link>())</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id426311"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">array iterator support</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id229808-bb"/><fo:inline font-family="monospace">array</fo:inline> iterator support</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id426325" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id426331" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id229811-bb"><fo:block id="id426337" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">iterator <fo:wrapper id="id229815-bb"/>begin();
const_iterator <fo:wrapper id="id229822-bb"/>begin() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id426371" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id426374" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>iterator for the first element</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426382" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>will not throw</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426390" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id229841-bb"><fo:block id="id426397" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">iterator <fo:wrapper id="id229845-bb"/>end();
const_iterator <fo:wrapper id="id229852-bb"/>end() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id426431" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id426434" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>iterator for position after the last element</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426443" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>will not throw</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id426450"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">array reverse iterator support</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id229873-bb"/><fo:inline font-family="monospace">array</fo:inline> reverse iterator support</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id426464" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id426470" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id229876-bb"><fo:block id="id426477" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">reverse_iterator <fo:wrapper id="id229880-bb"/>rbegin();
const_reverse_iterator <fo:wrapper id="id229887-bb"/>rbegin() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id426511" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id426515" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>reverse iterator for the first element of reverse iteration</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426523" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id229903-bb"><fo:block id="id426530" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">reverse_iterator <fo:wrapper id="id229906-bb"/>rend();
const_reverse_iterator <fo:wrapper id="id229913-bb"/>rend() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id426564" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id426568" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>reverse iterator for position after the last element in reverse iteration</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id426577"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">array capacity</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id229930-bb"/><fo:inline font-family="monospace">array</fo:inline> capacity</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id426590" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id426597" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id426599" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">size_type <fo:wrapper id="id229934-bb"/>size();</fo:block></fo:block><fo:list-block id="id426616" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id426620" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">N</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426631" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id426633" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id227212-bb"/>empty();</fo:block></fo:block><fo:list-block id="id426653" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id426657" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">N==0</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426668" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>will not throw</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426676" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id426678" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">size_type <fo:wrapper id="id227231-bb"/>max_size();</fo:block></fo:block><fo:list-block id="id426696" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id426700" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">N</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426711" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>will not throw</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id426718"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">array element access</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id227251-bb"/><fo:inline font-family="monospace">array</fo:inline> element access</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id426733" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id426739" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id227255-bb"><fo:block id="id426746" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">reference <fo:wrapper id="id227259-bb"/><fo:inline font-weight="bold">operator</fo:inline>[](size_type i);
const_reference <fo:wrapper id="id227274-bb"/><fo:inline font-weight="bold">operator</fo:inline>[](size_type i) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id426790" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id426794" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">i &lt; N</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426805" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>element with index <fo:inline font-family="monospace">i</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426818" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426826" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id227310-bb"><fo:block id="id426832" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">reference <fo:wrapper id="id227314-bb"/>at(size_type i);
const_reference <fo:wrapper id="id227329-bb"/>at(size_type i) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id426867" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id426871" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>element with index <fo:inline font-family="monospace">i</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426884" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">std::range_error</fo:inline> if <fo:inline font-family="monospace">i &gt;= N</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426902" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id227365-bb"><fo:block id="id426908" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">reference <fo:wrapper id="id227369-bb"/>front();
const_reference <fo:wrapper id="id227376-bb"/>front() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id426942" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id426946" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">N &gt; 0</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426958" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>the first element</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426966" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>will not throw</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id426973" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id227401-bb"><fo:block id="id426980" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">reference <fo:wrapper id="id227405-bb"/>back();
const_reference <fo:wrapper id="id227412-bb"/>back() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id427014" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id427018" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">N &gt; 0</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427029" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>the last element</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427037" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>will not throw</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427045" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id427047" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> T* <fo:wrapper id="id227437-bb"/>data() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id427076" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id427080" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">elems</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427091" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>will not throw</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427098" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id427101" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">T* <fo:wrapper id="id227458-bb"/>c_array();</fo:block></fo:block><fo:list-block id="id427117" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id427121" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">elems</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427132" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>will not throw</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id427140"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">array modifiers</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id227478-bb"/><fo:inline font-family="monospace">array</fo:inline> modifiers</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id427155" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id427161" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id427163" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id227482-bb"/>swap(<fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; other);</fo:block></fo:block><fo:list-block id="id427192" provisional-distance-between-starts="10em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id427196" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">std::swap_ranges(<fo:basic-link internal-destination="id229811-bb">begin</fo:basic-link>(), <fo:basic-link internal-destination="id229841-bb">end</fo:basic-link>(), other.<fo:basic-link internal-destination="id229811-bb">begin</fo:basic-link>())</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427231" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Complexity</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>linear in <fo:inline font-family="monospace">N</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427244" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id427246" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id227525-bb"/>assign(<fo:inline font-weight="bold">const</fo:inline> T&amp; value);</fo:block></fo:block><fo:list-block id="id427274" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id427277" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">std::fill_n(<fo:basic-link internal-destination="id229811-bb">begin</fo:basic-link>(), N, value)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id427297"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">array specialized algorithms</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id227563-bb"/><fo:inline font-family="monospace">array</fo:inline> specialized algorithms</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id427311" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id427317" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id427319" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id227567"/>swap(<fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; x, <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; y);</fo:block></fo:block><fo:list-block id="id427370" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id427374" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">x.<fo:basic-link internal-destination="id227482-bb">swap</fo:basic-link>(y)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427393" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id427400"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">array comparisons</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id287136-bb"/><fo:inline font-family="monospace">array</fo:inline> comparisons</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id427415" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id427421" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id427423" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id287139"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; x, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; y);</fo:block></fo:block><fo:list-block id="id427492" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id427495" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">std::equal(x.<fo:basic-link internal-destination="id229811-bb">begin</fo:basic-link>(), x.<fo:basic-link internal-destination="id229841-bb">end</fo:basic-link>(), y.<fo:basic-link internal-destination="id229811-bb">begin</fo:basic-link>())</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427530" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id427532" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id287205"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; x, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; y);</fo:block></fo:block><fo:list-block id="id427600" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id427604" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">!(x == y)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427615" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id427617" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id287261"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; x, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; y);</fo:block></fo:block><fo:list-block id="id427686" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id427690" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">std::lexicographical_compare(x.<fo:basic-link internal-destination="id229811-bb">begin</fo:basic-link>(), x.<fo:basic-link internal-destination="id229841-bb">end</fo:basic-link>(), y.<fo:basic-link internal-destination="id229811-bb">begin</fo:basic-link>(), y.<fo:basic-link internal-destination="id229841-bb">end</fo:basic-link>())</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427732" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id427734" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id287331"/><fo:inline font-weight="bold">operator</fo:inline>&gt;(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; x, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; y);</fo:block></fo:block><fo:list-block id="id427802" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id427806" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">y &lt; x</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427817" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id427820" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id287385"/><fo:inline font-weight="bold">operator</fo:inline>&lt;=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; x, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; y);</fo:block></fo:block><fo:list-block id="id427888" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id427892" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">!(y &lt; x)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id427903" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id427905" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, std::size_t N&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id287439"/><fo:inline font-weight="bold">operator</fo:inline>&gt;=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; x, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.array">array</fo:basic-link>&lt;T, N&gt;&amp; y);</fo:block></fo:block><fo:list-block id="id427974" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id427977" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">!(x &lt; y)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="array.rationale"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Design Rationale</fo:marker><fo:block font-size="17.28pt">Design Rationale</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There was an important design tradeoff regarding the
  constructors: We could implement array as an "aggregate" (see
  Section 8.5.1, [dcl.init.aggr], of the C++ Standard). This would
  mean:
    <fo:list-block id="id427999" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id428000" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An array can be initialized with a
      brace-enclosing, comma-separated list of initializers for the
      elements of the container, written in increasing subscript
      order:</fo:block><fo:block id="id428007" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.array">boost::array</fo:basic-link>&lt;int,4&gt; a = { { 1, 2, 3 } };</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note that if there are fewer elements in the
      initializer list, then each remaining element gets
      default-initialized (thus, it has a defined value).</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">However, this approach has its drawbacks: <fo:inline font-weight="bold"> passing no initializer list means that the elements
  have an indetermined initial value</fo:inline>, because the rule says
  that aggregates may have:
    <fo:list-block id="id428037" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id428038" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>No user-declared constructors.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428042" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>No private or protected non-static data members.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428046" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>No base classes.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428051" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>No virtual functions.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Nevertheless, The current implementation uses this approach.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note that for standard conforming compilers it is possible to
  use fewer braces (according to 8.5.1 (11) of the Standard). That is,
  you can initialize an array as follows:</fo:block><fo:block id="id428064" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.array">boost::array</fo:basic-link>&lt;int,4&gt; a = { 1, 2, 3 };
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">I'd appreciate any constructive feedback. <fo:inline font-weight="bold">Please note: I don't have time to read all boost
  mails. Thus, to make sure that feedback arrives to me, please send
  me a copy of each mail regarding this class.</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The code is provided "as is" without expressed or implied
  warranty.</fo:block></fo:block><fo:block id="array.more.info"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">For more information...</fo:marker><fo:block font-size="17.28pt">For more information...</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To find more details about using ordinary arrays in C++ and
  the framework of the STL, see e.g.

    <fo:block id="id428105" wrap-option="no-wrap" white-space-collapse="false" white-space-treatment="preserve" text-align="start" linefeed-treatment="preserve" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em">The C++ Standard Library - A Tutorial and Reference
by Nicolai M. Josuttis
Addison Wesley Longman, 1999
ISBN 0-201-37926-0</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="http://www.josuttis.com/">Home Page of Nicolai
  Josuttis</fo:basic-link></fo:block></fo:block><fo:block id="array.ack"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Acknowledgements</fo:marker><fo:block font-size="17.28pt">Acknowledgements</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Doug Gregor ported the documentation to the BoostBook format.</fo:block></fo:block></fo:flow></fo:page-sequence><fo:block id="concepts.reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Concept reference</fo:marker><fo:block font-size="20.736pt">Concept reference</fo:block></fo:block></fo:block></fo:block><fo:block keep-together="always">Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2001, 2002 Indiana University</fo:block><fo:block keep-together="always">Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2000, 2001 University of Notre Dame du Lac</fo:block><fo:block keep-together="always">Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2000 Jeremy SiekLie-Quan LeeAndrew Lumsdaine</fo:block><fo:block keep-together="always">Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 1996-1999 Silicon Graphics Computer Systems, Inc.</fo:block><fo:block keep-together="always">Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 1994 Hewlett-Packard Company</fo:block><fo:block keep-together="always"><fo:block id="id428300"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This product includes software developed at the University
      of Notre Dame and the Pervasive Technology Labs at Indiana
      University. For technical information contact Andrew Lumsdaine
      at the Pervasive Technology Labs at Indiana University.  For
      administrative and license questions contact the Advanced
      Research and Technology Institute at 351 West 10th Street.
      Indianapolis, Indiana 46202, phone 317-278-4100, fax
      317-274-5902.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Some concepts based on versions from the MTL draft manual
      and Boost Graph and Property Map documentation, the SGI Standard
      Template Library documentation and the Hewlett-Packard STL,
      under the following license: 
        <fo:block start-indent="0.5in" end-indent="0.5in" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:block/></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id428138"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Concepts</fo:marker><fo:block font-size="17.28pt">Concepts</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id428142" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id428143" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="Assignable">Assignable</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428152" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="InputIterator">InputIterator</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428161" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="OutputIterator">OutputIterator</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428170" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="ForwardIterator">ForwardIterator</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428180" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="BidirectionalIterator">BidirectionalIterator</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428189" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="RandomAccessIterator">RandomAccessIterator</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428199" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="DefaultConstructible">DefaultConstructible</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428209" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="CopyConstructible">CopyConstructible</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428219" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428228" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="LessThanComparable">LessThanComparable</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428238" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="SignedInteger">SignedInteger</fo:basic-link></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block break-before="page"><fo:block id="Assignable"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="17.28pt">Concept Assignable</fo:block></fo:block><fo:block space-after="1em">Concept Assignable</fo:block><fo:block>Assignable</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id428622"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="14.4pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Assignable types must have copy constructors,
    <fo:inline font-family="monospace">operator=</fo:inline> for assignment, and the <fo:inline font-family="monospace">swap()</fo:inline>
    function defined.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id428642"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Refinement of</fo:marker><fo:block font-size="14.4pt">Refinement of</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id428646" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id428647" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="CopyConstructible">CopyConstructible</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id428657"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Notation</fo:marker><fo:block font-size="14.4pt">Notation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id428661" provisional-distance-between-starts="1em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id428662" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>X</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A type playing the role of assignable-type in the <fo:basic-link internal-destination="Assignable">Assignable</fo:basic-link> concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428679" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">x</fo:inline>, </fo:inline><fo:inline><fo:inline font-family="monospace">y</fo:inline>, </fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Objects of type X</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id428691"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Valid expressions</fo:marker><fo:block font-size="14.4pt">Valid expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id428695" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Semantics</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Assignment</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x = y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">X &amp;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Require <fo:inline font-family="monospace">operator=</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Swap</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">swap(x, y)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">void</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Require <fo:inline font-family="monospace">swap()</fo:inline> function</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id350783"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Models</fo:marker><fo:block font-size="14.4pt">Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id350787" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id350788" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>int</fo:inline></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id350797"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">See also</fo:marker><fo:block font-size="14.4pt">See also</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id350801" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id350802" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="CopyConstructible">CopyConstructible</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="InputIterator"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="17.28pt">Concept InputIterator</fo:block></fo:block><fo:block space-after="1em">Concept InputIterator</fo:block><fo:block>InputIterator</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id350827"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="14.4pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An input iterator is an iterator that can read through a sequence of
  values.  It is single-pass (old values of the iterator cannot be
  re-used), and read-only.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An input iterator represents a position in a sequence.  Therefore, the
  iterator can point into the sequence (returning a value when dereferenced
  and being incrementable), or be off-the-end (and not dereferenceable or
  incrementable).</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id350843"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Refinement of</fo:marker><fo:block font-size="14.4pt">Refinement of</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id350847" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id350848" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="Assignable">Assignable</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id350857" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="DefaultConstructible">DefaultConstructible</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id350867" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id428719"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Associated types</fo:marker><fo:block font-size="14.4pt">Associated types</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id428723" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id428724" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">value_type</fo:inline><fo:block id="id428731" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::iterator_traits&lt;Iter&gt;::value_type</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The value type of the iterator (not necessarily what
    <fo:inline font-family="monospace">*i</fo:inline> returns)</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428750" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">difference_type</fo:inline><fo:block id="id428757" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::iterator_traits&lt;Iter&gt;::difference_type</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The difference type of the iterator</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428769" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">category</fo:inline><fo:block id="id428777" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::iterator_traits&lt;Iter&gt;::iterator_category</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The category of the iterator</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id428789"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Notation</fo:marker><fo:block font-size="14.4pt">Notation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id428793" provisional-distance-between-starts="4em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id428794" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Iter</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A type playing the role of iterator-type in the <fo:basic-link internal-destination="InputIterator">InputIterator</fo:basic-link> concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428811" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">i</fo:inline>, </fo:inline><fo:inline><fo:inline font-family="monospace">j</fo:inline>, </fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Objects of type Iter</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428823" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">x</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Object of type value_type</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id428832"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Type expressions</fo:marker><fo:block font-size="14.4pt">Type expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id428836" provisional-distance-between-starts="24em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id428837" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Category tag</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>category must be 
                  derived from std::input_iterator_tag,  a model  of <fo:basic-link internal-destination="DefaultConstructible">DefaultConstructible</fo:basic-link>,  and  a model  of <fo:basic-link internal-destination="CopyConstructible">CopyConstructible</fo:basic-link>.
                </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428871" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Value type copy constructibility</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>value_type must be 
                   a model  of <fo:basic-link internal-destination="CopyConstructible">CopyConstructible</fo:basic-link>.
                </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id428891" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Difference type properties</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>difference_type must be 
                   a model  of <fo:basic-link internal-destination="SignedInteger">SignedInteger</fo:basic-link>.
                </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id428910"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Valid expressions</fo:marker><fo:block font-size="14.4pt">Valid expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id428915" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-column column-number="5"/><fo:table-column column-number="6"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Precondition</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Semantics</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Postcondition</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Dereference</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">*i</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to value_type</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Preincrement</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">++i</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter &amp;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postincrement</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i++</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">(void)(++i)</fo:inline></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is dereferenceable or
    off-the-end</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postincrement and dereference</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">*i++</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to value_type</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">{value_type t = *i; ++i; return t;}</fo:inline></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is dereferenceable or
    off-the-end</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429074"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Complexity</fo:marker><fo:block font-size="14.4pt">Complexity</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
  All iterator operations must take amortized constant time.
  </fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429082"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Models</fo:marker><fo:block font-size="14.4pt">Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id429086" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id429087" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>std::istream_iterator</fo:inline></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429096"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">See also</fo:marker><fo:block font-size="14.4pt">See also</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id429100" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id429101" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="DefaultConstructible">DefaultConstructible</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429111" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429120" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="ForwardIterator">ForwardIterator</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429129" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="OutputIterator">OutputIterator</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="OutputIterator"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="17.28pt">Concept OutputIterator</fo:block></fo:block><fo:block space-after="1em">Concept OutputIterator</fo:block><fo:block>OutputIterator</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429154"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="14.4pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An output iterator is an iterator that can write a sequence of
  values.  It is single-pass (old values of the iterator cannot be
  re-used), and write-only.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An output iterator represents a position in a (possibly infinite)
  sequence.  Therefore, the iterator can point into the sequence (returning
  a value when dereferenced and being incrementable), or be off-the-end
  (and not dereferenceable or incrementable).</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429170"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Associated types</fo:marker><fo:block font-size="14.4pt">Associated types</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id429174" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id429176" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">value_type</fo:inline><fo:block id="id429183" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::iterator_traits&lt;Iter&gt;::value_type</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The stated value type of the iterator (should be
    <fo:inline font-family="monospace">void</fo:inline> for an output iterator that does not model some other
    iterator concept).</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429203" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">difference_type</fo:inline><fo:block id="id429210" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::iterator_traits&lt;Iter&gt;::difference_type</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The difference type of the iterator</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429222" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">category</fo:inline><fo:block id="id429230" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::iterator_traits&lt;Iter&gt;::iterator_category</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The category of the iterator</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429242"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Notation</fo:marker><fo:block font-size="14.4pt">Notation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id429246" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id429247" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Iter</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A type playing the role of iterator-type in the <fo:basic-link internal-destination="OutputIterator">OutputIterator</fo:basic-link> concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429264" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>ValueType</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A type playing the role of value-type in the <fo:basic-link internal-destination="OutputIterator">OutputIterator</fo:basic-link> concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429280" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">i</fo:inline>, </fo:inline><fo:inline><fo:inline font-family="monospace">j</fo:inline>, </fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Objects of type Iter</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429293" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">x</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Object of type ValueType</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429301"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Type expressions</fo:marker><fo:block font-size="14.4pt">Type expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id429306" provisional-distance-between-starts="24em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id429307" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline/></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The type Iter must be a model of <fo:basic-link internal-destination="Assignable">Assignable</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429325" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline/></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The type ValueType must be a model of <fo:basic-link internal-destination="Assignable">Assignable</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429344" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline/></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The type Iter must be a model of <fo:basic-link internal-destination="DefaultConstructible">DefaultConstructible</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429363" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline/></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The type Iter must be a model of
  <fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429382" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Category tag</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>category must be 
                  derived from std::output_iterator_tag,  a model  of <fo:basic-link internal-destination="DefaultConstructible">DefaultConstructible</fo:basic-link>,  and  a model  of <fo:basic-link internal-destination="CopyConstructible">CopyConstructible</fo:basic-link>.
                </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429415" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Difference type properties</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>difference_type must be 
                   a model  of <fo:basic-link internal-destination="SignedInteger">SignedInteger</fo:basic-link>.
                </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429435"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Valid expressions</fo:marker><fo:block font-size="14.4pt">Valid expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id429439" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-column column-number="5"/><fo:table-column column-number="6"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Precondition</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Semantics</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Postcondition</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Dereference</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">*i</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Dereference and assign</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">*i = x</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">*i</fo:inline> may not be written to again until it has
    been incremented.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Preincrement</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">++i</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter &amp;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postincrement</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i++</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">(void)(++i)</fo:inline></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is dereferenceable or
    off-the-end</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postincrement, dereference, and assign</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">*i++ = x</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">{*i = t; ++i;}</fo:inline></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is dereferenceable or
    off-the-end</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429622"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Complexity</fo:marker><fo:block font-size="14.4pt">Complexity</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
  All iterator operations must take amortized constant time.
  </fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429630"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Models</fo:marker><fo:block font-size="14.4pt">Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id429633" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id429635" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>std::ostream_iterator, ..., </fo:inline></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429647" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>std::insert_iterator, ..., </fo:inline></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429660" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>std::front_insert_iterator, ..., </fo:inline></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429672" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>std::back_insert_iterator, ..., </fo:inline></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429684"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">See also</fo:marker><fo:block font-size="14.4pt">See also</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id429688" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"/></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ForwardIterator"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="17.28pt">Concept ForwardIterator</fo:block></fo:block><fo:block space-after="1em">Concept ForwardIterator</fo:block><fo:block>ForwardIterator</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429705"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="14.4pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A forward iterator is an iterator that can read through a sequence of
  values.  It is multi-pass (old values of the iterator can be
  re-used), and can be either mutable (data pointed to by it can be
  changed) or not mutable.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An iterator represents a position in a sequence.  Therefore, the
  iterator can point into the sequence (returning a value when dereferenced
  and being incrementable), or be off-the-end (and not dereferenceable or
  incrementable).</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429722"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Refinement of</fo:marker><fo:block font-size="14.4pt">Refinement of</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id429726" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id429727" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="InputIterator">InputIterator</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429736" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="OutputIterator">OutputIterator</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429745"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Associated types</fo:marker><fo:block font-size="14.4pt">Associated types</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id429749" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id429751" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">value_type</fo:inline><fo:block id="id429758" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::iterator_traits&lt;Iter&gt;::value_type</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The value type of the iterator</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429769" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">category</fo:inline><fo:block id="id429777" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::iterator_traits&lt;Iter&gt;::iterator_category</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The category of the iterator</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429789"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Notation</fo:marker><fo:block font-size="14.4pt">Notation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id429793" provisional-distance-between-starts="4em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id429794" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Iter</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A type playing the role of iterator-type in the <fo:basic-link internal-destination="ForwardIterator">ForwardIterator</fo:basic-link> concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429811" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">i</fo:inline>, </fo:inline><fo:inline><fo:inline font-family="monospace">j</fo:inline>, </fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Objects of type Iter</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id429823" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">x</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Object of type value_type</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429832"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Type expressions</fo:marker><fo:block font-size="14.4pt">Type expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id429836" provisional-distance-between-starts="12em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id429837" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Category tag</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>category must be 
                  derived from std::forward_iterator_tag.
                </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id429852"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Valid expressions</fo:marker><fo:block font-size="14.4pt">Valid expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id429857" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-column column-number="5"/><fo:table-column column-number="6"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Precondition</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Semantics</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Postcondition</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Dereference</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">*i</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">const-if-not-mutable value_type &amp;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Member access</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i-&gt;{member-name} (return type is pointer-to-object type)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">const-if-not-mutable value_type *</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Preincrement</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">++i</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter &amp;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postincrement</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i++</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">{Iter j = i; ++i; return j;}</fo:inline></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is dereferenceable or
    off-the-end</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430003"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Complexity</fo:marker><fo:block font-size="14.4pt">Complexity</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
  All iterator operations must take amortized constant time.
  </fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430010"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Invariants</fo:marker><fo:block font-size="14.4pt">Invariants</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430014" provisional-distance-between-starts="24em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id430016" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Predecrement must return object</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">&amp;i = &amp;(++i)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430027" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Unique path through sequence</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">i == j</fo:inline> implies <fo:inline font-family="monospace">++i == ++j</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430045"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Models</fo:marker><fo:block font-size="14.4pt">Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430049" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id430050" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>T *</fo:inline></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430058" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>std::hash_set&lt;T&gt;::iterator</fo:inline></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430067"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">See also</fo:marker><fo:block font-size="14.4pt">See also</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430071" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id430072" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="BidirectionalIterator">BidirectionalIterator</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="BidirectionalIterator"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="17.28pt">Concept BidirectionalIterator</fo:block></fo:block><fo:block space-after="1em">Concept BidirectionalIterator</fo:block><fo:block>BidirectionalIterator</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430098"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="14.4pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A bidirectional iterator is an iterator that can read through a sequence
  of values.  It can move in either direction through the sequence, and can
  be either mutable (data pointed to by it can be changed) or not mutable.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An iterator represents a position in a sequence.  Therefore, the
  iterator can point into the sequence (returning a value when dereferenced
  and being incrementable), or be off-the-end (and not dereferenceable or
  incrementable).</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430115"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Refinement of</fo:marker><fo:block font-size="14.4pt">Refinement of</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430119" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id430120" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="ForwardIterator">ForwardIterator</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430129"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Associated types</fo:marker><fo:block font-size="14.4pt">Associated types</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430133" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id430134" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">value_type</fo:inline><fo:block id="id430142" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::iterator_traits&lt;Iter&gt;::value_type</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The value type of the iterator</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430153" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">category</fo:inline><fo:block id="id430160" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::iterator_traits&lt;Iter&gt;::iterator_category</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The category of the iterator</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430173"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Notation</fo:marker><fo:block font-size="14.4pt">Notation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430177" provisional-distance-between-starts="4em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id430178" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Iter</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A type playing the role of iterator-type in the <fo:basic-link internal-destination="BidirectionalIterator">BidirectionalIterator</fo:basic-link> concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430195" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">i</fo:inline>, </fo:inline><fo:inline><fo:inline font-family="monospace">j</fo:inline>, </fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Objects of type Iter</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430208" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">x</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Object of type value_type</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430216"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Type expressions</fo:marker><fo:block font-size="14.4pt">Type expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430220" provisional-distance-between-starts="12em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id430221" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Category tag</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>category must be 
                  derived from std::bidirectional_iterator_tag.
                </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430237"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Valid expressions</fo:marker><fo:block font-size="14.4pt">Valid expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id430241" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-column column-number="5"/><fo:table-column column-number="6"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Precondition</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Semantics</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Postcondition</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Predecrement</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">--i</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter &amp;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is incrementable (not
    off-the-end) and some dereferenceable iterator <fo:inline font-family="monospace">j</fo:inline> exists
    such that <fo:inline font-family="monospace">i == ++j</fo:inline></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postdecrement</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i--</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Same as for predecrement</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">{Iter j = i; --i; return j;}</fo:inline></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">i</fo:inline> is dereferenceable or
    off-the-end</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430339"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Complexity</fo:marker><fo:block font-size="14.4pt">Complexity</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
  All iterator operations must take amortized constant time.
  </fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430347"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Invariants</fo:marker><fo:block font-size="14.4pt">Invariants</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430351" provisional-distance-between-starts="24em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id430352" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Predecrement must return object</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">&amp;i = &amp;(--i)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430364" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Unique path through sequence</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">i == j</fo:inline> implies <fo:inline font-family="monospace">--i == --j</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430381" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Increment and decrement are inverses</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">++i; --i;</fo:inline> and <fo:inline font-family="monospace">--i; ++i;</fo:inline> must end up with the
  value of <fo:inline font-family="monospace">i</fo:inline> unmodified, if <fo:inline font-family="monospace">i</fo:inline> both of the
  operations in the pair are valid.
  </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430416"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Models</fo:marker><fo:block font-size="14.4pt">Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430420" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id430421" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>T *</fo:inline></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430429" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>std::list&lt;T&gt;::iterator</fo:inline></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430439"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">See also</fo:marker><fo:block font-size="14.4pt">See also</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430443" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id430444" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="RandomAccessIterator">RandomAccessIterator</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="RandomAccessIterator"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="17.28pt">Concept RandomAccessIterator</fo:block></fo:block><fo:block space-after="1em">Concept RandomAccessIterator</fo:block><fo:block>RandomAccessIterator</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430469"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="14.4pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A random access iterator is an iterator that can read through
  a sequence of values.  It can move in either direction through the
  sequence (by any amount in constant time), and can be either mutable
  (data pointed to by it can be changed) or not mutable.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An iterator represents a position in a sequence.  Therefore,
  the iterator can point into the sequence (returning a value when
  dereferenced and being incrementable), or be off-the-end (and not
  dereferenceable or incrementable).</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430486"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Refinement of</fo:marker><fo:block font-size="14.4pt">Refinement of</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430490" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id430492" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="BidirectionalIterator">BidirectionalIterator</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430501" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="LessThanComparable">LessThanComparable</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430511"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Associated types</fo:marker><fo:block font-size="14.4pt">Associated types</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430515" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id430516" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">value_type</fo:inline><fo:block id="id430524" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::iterator_traits&lt;Iter&gt;::value_type</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The value type of the iterator</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430534" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">category</fo:inline><fo:block id="id430542" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::iterator_traits&lt;Iter&gt;::iterator_category</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The category of the iterator</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430554" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">difference_type</fo:inline><fo:block id="id430562" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::iterator_traits&lt;Iter&gt;::difference_type</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The difference type of the iterator (measure of the number
    of steps between two iterators)</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430574"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Notation</fo:marker><fo:block font-size="14.4pt">Notation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430578" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id430579" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Iter</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A type playing the role of iterator-type in the <fo:basic-link internal-destination="RandomAccessIterator">RandomAccessIterator</fo:basic-link> concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430597" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">i</fo:inline>, </fo:inline><fo:inline><fo:inline font-family="monospace">j</fo:inline>, </fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Objects of type Iter</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430609" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">x</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Object of type value_type</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430618" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">n</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Object of type difference_type</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id430626" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">int_off</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Object of type int</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430635"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Type expressions</fo:marker><fo:block font-size="14.4pt">Type expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id430639" provisional-distance-between-starts="12em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id430640" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Category tag</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>category must be 
                  derived from std::random_access_iterator_tag.
                </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id430656"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Valid expressions</fo:marker><fo:block font-size="14.4pt">Valid expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id430660" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Semantics</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Motion</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i += n</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter &amp;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to applying <fo:inline font-family="monospace">i++</fo:inline><fo:inline font-family="monospace">n</fo:inline> times
    if <fo:inline font-family="monospace">n</fo:inline> is positive, applying <fo:inline font-family="monospace">i--</fo:inline><fo:inline font-family="monospace">-n</fo:inline> times if <fo:inline font-family="monospace">n</fo:inline> is negative, and to a null
    operation if <fo:inline font-family="monospace">n</fo:inline> is zero.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Motion (with integer offset)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i += int_off</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter &amp;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to applying <fo:inline font-family="monospace">i++</fo:inline><fo:inline font-family="monospace">n</fo:inline> times
    if <fo:inline font-family="monospace">n</fo:inline> is positive, applying <fo:inline font-family="monospace">i--</fo:inline><fo:inline font-family="monospace">-n</fo:inline> times if <fo:inline font-family="monospace">n</fo:inline> is negative, and to a null
    operation if <fo:inline font-family="monospace">n</fo:inline> is zero.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Subtractive motion</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i -= n</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter &amp;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">i+=(-n)</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Subtractive motion (with integer offset)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i -= int_off</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter &amp;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">i+=(-n)</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Addition</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i + n</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">{Iter j = i; j += n; return j;}</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Addition with integer</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i + int_off</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">{Iter j = i; j += n; return j;}</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Addition (count first)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">n + i</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">i + n</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Addition with integer (count first)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">int_off + i</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">i + n</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Subtraction</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i - n</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">i + (-n)</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Subtraction with integer</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i - int_off</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iter</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">i + (-n)</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Distance</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i - j</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">difference_type</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The number of times <fo:inline font-family="monospace">i</fo:inline> must be incremented (or
    decremented if the result is negative) to reach <fo:inline font-family="monospace">j</fo:inline>.  Not
    defined if <fo:inline font-family="monospace">j</fo:inline> is not reachable from
    <fo:inline font-family="monospace">i</fo:inline>.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Element access</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i[n]</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">const-if-not-mutable value_type &amp;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">*(i + n)</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Element access with integer index</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">i[int_off]</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">const-if-not-mutable value_type &amp;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equivalent to <fo:inline font-family="monospace">*(i + n)</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431081"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Complexity</fo:marker><fo:block font-size="14.4pt">Complexity</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
  All iterator operations must take amortized constant time.
  </fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431089"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Models</fo:marker><fo:block font-size="14.4pt">Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id431093" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id431094" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>T *</fo:inline></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431102" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>std::vector&lt;T&gt;::iterator</fo:inline></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431112" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>std::vector&lt;T&gt;::const_iterator</fo:inline></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431122" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>std::deque&lt;T&gt;::iterator</fo:inline></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431130" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>std::deque&lt;T&gt;::const_iterator</fo:inline></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431140"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">See also</fo:marker><fo:block font-size="14.4pt">See also</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id431144" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id431146" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="LessThanComparable">LessThanComparable</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="DefaultConstructible"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="17.28pt">Concept DefaultConstructible</fo:block></fo:block><fo:block space-after="1em">Concept DefaultConstructible</fo:block><fo:block>DefaultConstructible</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431171"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="14.4pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">DefaultConstructible objects only need to have a default
  constructor.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431178"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Notation</fo:marker><fo:block font-size="14.4pt">Notation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id431182" provisional-distance-between-starts="1em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id431184" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>X</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A type playing the role of default-constructible-type in the <fo:basic-link internal-destination="DefaultConstructible">DefaultConstructible</fo:basic-link> concept.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431201"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Valid expressions</fo:marker><fo:block font-size="14.4pt">Valid expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id431205" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Semantics</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construction</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">X()</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">X</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct an instance of the type with default parameters.</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431242"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Models</fo:marker><fo:block font-size="14.4pt">Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id431246" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id431247" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>int</fo:inline></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431256" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>std::vector&lt;double&gt;</fo:inline></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="CopyConstructible"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="17.28pt">Concept CopyConstructible</fo:block></fo:block><fo:block space-after="1em">Concept CopyConstructible</fo:block><fo:block>CopyConstructible</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431280"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="14.4pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Copy constructible types must be able to be constructed from another
  member of the type.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431289"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Notation</fo:marker><fo:block font-size="14.4pt">Notation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id431293" provisional-distance-between-starts="1em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id431294" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>X</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A type playing the role of copy-constructible-type in the <fo:basic-link internal-destination="CopyConstructible">CopyConstructible</fo:basic-link> concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431311" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">x</fo:inline>, </fo:inline><fo:inline><fo:inline font-family="monospace">y</fo:inline>, </fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Objects of type X</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431323"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Valid expressions</fo:marker><fo:block font-size="14.4pt">Valid expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id431328" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Semantics</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Copy construction</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">X(x)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">X</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Require copy constructor.</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431364"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Models</fo:marker><fo:block font-size="14.4pt">Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id431368" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id431369" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>int</fo:inline></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="EqualityComparable"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="17.28pt">Concept EqualityComparable</fo:block></fo:block><fo:block space-after="1em">Concept EqualityComparable</fo:block><fo:block>EqualityComparable</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431393"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="14.4pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equality Comparable types must have <fo:inline font-family="monospace">==</fo:inline> and
  <fo:inline font-family="monospace">!=</fo:inline> operators.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431413"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Notation</fo:marker><fo:block font-size="14.4pt">Notation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id431417" provisional-distance-between-starts="1em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id431418" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>X</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A type playing the role of comparable-type in the <fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link> concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431435" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">x</fo:inline>, </fo:inline><fo:inline><fo:inline font-family="monospace">y</fo:inline>, </fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Objects of type X</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431448"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Valid expressions</fo:marker><fo:block font-size="14.4pt">Valid expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id431452" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equality test</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x == y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Inequality test</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x != y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431500"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Models</fo:marker><fo:block font-size="14.4pt">Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id431504" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id431505" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>int</fo:inline></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431513" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>std::vector&lt;int&gt;</fo:inline></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="LessThanComparable"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="17.28pt">Concept LessThanComparable</fo:block></fo:block><fo:block space-after="1em">Concept LessThanComparable</fo:block><fo:block>LessThanComparable</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431538"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="14.4pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">LessThanComparable types must have <fo:inline font-family="monospace">&lt;</fo:inline>,
  <fo:inline font-family="monospace">&gt;</fo:inline>, <fo:inline font-family="monospace">&lt;=</fo:inline>, and <fo:inline font-family="monospace">&gt;=</fo:inline>
  operators.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431571"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Notation</fo:marker><fo:block font-size="14.4pt">Notation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id431575" provisional-distance-between-starts="1em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id431576" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>X</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A type playing the role of comparable-type in the <fo:basic-link internal-destination="LessThanComparable">LessThanComparable</fo:basic-link> concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431593" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">x</fo:inline>, </fo:inline><fo:inline><fo:inline font-family="monospace">y</fo:inline>, </fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Objects of type X</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431606"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Valid expressions</fo:marker><fo:block font-size="14.4pt">Valid expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id431610" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Semantics</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Less than</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &lt; y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Determine if one value is less than another.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Less than or equal</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &lt;= y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Determine if one value is less than or equal to another.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Greater than</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &gt; y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Determine if one value is greater than another.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Greater than or equal to</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &gt;= y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Determine if one value is greater than or equal to another.</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431710"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Models</fo:marker><fo:block font-size="14.4pt">Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id431714" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id431715" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline>int</fo:inline></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="SignedInteger"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="17.28pt">Concept SignedInteger</fo:block></fo:block><fo:block space-after="1em">Concept SignedInteger</fo:block><fo:block>SignedInteger</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431739"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Refinement of</fo:marker><fo:block font-size="14.4pt">Refinement of</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id431743" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id431745" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="CopyConstructible">CopyConstructible</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431754" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="Assignable">Assignable</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431763" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="DefaultConstructible">DefaultConstructible</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431773" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431782" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="LessThanComparable">LessThanComparable</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431792"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Notation</fo:marker><fo:block font-size="14.4pt">Notation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id431796" provisional-distance-between-starts="1em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id431797" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>T</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A type playing the role of integral-type in the <fo:basic-link internal-destination="SignedInteger">SignedInteger</fo:basic-link> concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431813" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">x</fo:inline>, </fo:inline><fo:inline><fo:inline font-family="monospace">y</fo:inline>, </fo:inline><fo:inline><fo:inline font-family="monospace">z</fo:inline>, </fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Objects of type T</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id431830" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">a</fo:inline>, </fo:inline><fo:inline><fo:inline font-family="monospace">b</fo:inline>, </fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Objects of type int</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431842"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Type expressions</fo:marker><fo:block font-size="14.4pt">Type expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id431846" provisional-distance-between-starts="17em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id431848" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Conversion to int</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>T must be 
                  convertible to int.
                </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id431863"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Valid expressions</fo:marker><fo:block font-size="14.4pt">Valid expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id431867" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Conversion from int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T(a)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Preincrement</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">++x</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T &amp;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Predecrement</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">--x</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T &amp;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postincrement</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x++</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postdecrement</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x--</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sum</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x + y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sum with int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x + a</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sum-assignment</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x += y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T &amp;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sum-assignment with int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x += a</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T &amp;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Difference</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x - y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Difference with int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x - a</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Product</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x * y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Product with int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x * a</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Product-assignment with int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x *= a</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T &amp;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Product with int on left</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">a * x</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Quotient</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x / y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Quotient with int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x / a</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Right-shift</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &gt;&gt; y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Right-shift with int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &gt;&gt; a</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Right-shift-assignment with int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &gt;&gt;= a</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">T &amp;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Less-than comparison</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &lt; y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Less-than comparison with int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &lt; a</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Less-than comparison with size_t</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &lt; boost::sample_value &lt; std::size_t &gt;()</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Greater-than comparison</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &gt; y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Greater-than comparison with int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &gt; a</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Less-than-or-equal comparison</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &lt;= y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Less-than-or-equal comparison with int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &lt;= a</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Greater-than-or-equal comparison</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &gt;= y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Greater-than-or-equal comparison with int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x &gt;= a</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Greater-than-or-equal comparison with int on left</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">a &gt;= x</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equality comparison</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x == y</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equality comparison with int</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">x == a</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convertible to bool</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id432353"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">See also</fo:marker><fo:block font-size="14.4pt">See also</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id432357" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"/></fo:block></fo:block></fo:block></fo:block><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Date_Time</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Date_Time</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="date_time"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Boost.Date_Time</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Jeff Garland</fo:block></fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2001-2004 CrystalClear Software, Inc</fo:block><fo:block><fo:block id="id432392"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Subject to the Boost Software License, Version 1.0. (See accompanying file
    <fo:inline font-family="monospace">LICENSE_1_0.txt</fo:inline> or copy at <fo:basic-link external-destination="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</fo:basic-link>)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="date_time.intro"><fo:block/><fo:block id="id432418"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
   A set of date-time libraries based on generic programming concepts.
  </fo:block></fo:block><fo:block id="date_time.conceptual"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Conceptual</fo:marker><fo:block font-size="17.28pt">Conceptual</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="Motivation"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Motivation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The motivation for this library comes from working with and helping build several date-time libraries on several projects. Date-time libraries provide fundamental infrastructure for most development projects. However, most of them have limitations in their ability to calculate, format, convert, or perform some other functionality. For example, most libraries do not correctly handle leap seconds, provide concepts such as infinity, or provide the ability to use high resolution or network time sources.  These libraries also tend to be rigid in their representation of dates and times. Thus customized policies for a project or subproject are not possible.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Programming with dates and times should be almost as simple and natural as programming with strings and integers.  Applications with lots of temporal logic can be radically simplified by having a robust set of operators and calculation capabilities. Classes should provide the ability to compare dates and times, add lengths or time durations, retrieve dates and times from  clocks, and work naturally with date and time intervals.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Another motivation for development of the library was to apply modern C++ library design techniques to the date-time domain.  Really to build a framework for the construction of building temporal types. For example, by providing iterators and traits classes to control fundamental properties of the library. To the authors knowledge this library is the only substantial attempt to apply modern C++ to a date-time library.
  </fo:block></fo:block><fo:block id="date_time.domain_concepts"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Domain Concepts</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The date time domain is rich in terminology and problems. 
    The following is a brief introduction to the concepts you 
    will find reflected in the library. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The library supports 3 basic temporal types:
    <fo:list-block id="id432495" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id432499" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-style="italic">Time Point</fo:inline> -- Specifier 
	for a location in the time continuum.
      </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id432507" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-style="italic">Time Duration</fo:inline> -- A 
	length of time unattached to any point on the time continuum.
      </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id432516" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-style="italic">Time Interval</fo:inline> -- A duration 
	of time attached to a specific point in the time continuum. 
	Also known as a time period. 
      </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Each of these temporal types has a <fo:inline font-style="italic">Resolution</fo:inline> which is defined by the smallest representable duration. A <fo:inline font-style="italic">Time system</fo:inline> provides all these categories of temporal types as well as the rules for labeling and calculating with time points. <fo:inline font-style="italic">Calendar Systems</fo:inline> are simply time systems with a maximum resolution of one day. The <fo:inline font-style="italic">Gregorian</fo:inline> system is the most widely used calendar system today (the ISO system is basically a derivative of this). However, there are many other calendar systems as well. <fo:inline font-style="italic">UTC (Coordinated Universal Time)</fo:inline> is a widely used civil time system. UTC is adjusted for earth rotation at longitude 0 by the use of leap seconds (This is not predictable, only as necessary). Most <fo:inline font-style="italic">local time</fo:inline> systems are based on UTC but are also adjusted for earth rotation so that daylight hours are similar everywhere. In addition, some local times include <fo:inline font-style="italic">daylight savings time (DST)</fo:inline> adjustments to shift the daylight hours during the summer.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    A <fo:inline font-style="italic">Clock Device</fo:inline> is software component (tied to some hardware) that provides the current date or time with respect to a time system. A clock can measure the current time to a known resolution which may be higher or lower than a particular time representation. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The library provides support for calculating with dates and times. However, time calculations are not quite the same as calculating with integers. If you are serious about the accuracy of your time calculations need to read about <fo:basic-link internal-destination="date_time.tradeoffs">Stability, Predictability, and Approximations</fo:basic-link>. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id432617" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id432620" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="date_time.terminology">Basic Terminology</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id432629" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="date_time.calculations">Calculations</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id432639" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="date_time.tradeoffs">Stability, Predictability, and Approximations</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id432648" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="date_time.references">References</fo:basic-link></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="date_time.design_concepts"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Design Concepts</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    A large part of the genesis of this library has been the observation that few date-time libraries are built in a fashion that allows customization and extension. A typical example, the calendar logic is built directly into the date class. Or the clock retrieval functions are built directly into the time class. These design decisions usually make it impossible to extend or change the library behavior. At a more fundamental level, there are usually assumptions about the resolution of time representation or the gregorian calendar. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Often times, the result is that a project must settle for a less than complete library because of a requirement for high resolution time representation or other assumptions that do not match the implementation of the library. This is extremely unfortunate because development of a library of this sort is far from a trivial task. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    While the design is far from perfect the current design is far more flexible than any date-time library the author is aware of. It is expected that the various aspects of extensibility will be better documented in future versions. Information about the design goals of the library is <fo:basic-link internal-destination="date_time.design_goals">summarized here</fo:basic-link>. 
  </fo:block></fo:block><fo:block id="date_time.conceptual.more_info"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">More Information</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      The design of the library is currently being evolved using 
      Wiki and email discussions. You can find more information at:
      <fo:list-block id="id432718" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id432722" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?GDTL">Boost Wiki GDTL Start Page</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id432729" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www.crystalclearsoftware.com/libraries/gdtl/gdtl_ref_guide/index.html">Full Doxygen Reference Manual</fo:basic-link></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block id="date_time.gregorian"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Gregorian</fo:marker><fo:block font-size="17.28pt">Gregorian</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id432749"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Gregorian Date System</fo:marker><fo:block font-size="17.28pt">Gregorian Date System</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="greg_intro">Introduction</fo:basic-link> -- 
    <fo:basic-link internal-destination="greg_ex">Usage Examples</fo:basic-link></fo:block><fo:wrapper id="greg_intro"/><fo:block id="id432779"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The gregorian date system provides a date programming system based the Gregorian Calendar. The first introduction of the Gregorian calendar was in 1582 to fix an error in the Julian Calendar. However, many local jurisdictions did not adopt this change until much later. Thus there is potential confusion with historical dates. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The implemented calendar is a "propleptic Gregorian calendar" which extends dates back prior to the Gregorian Calendar's first adoption in 1582. The current implementation supports dates in the range 1400-Jan-01 to 10000-Jan-01. Many references will represent dates prior to 1582 using the Julian Calendar, so caution is in order if accurate calculations are required on historic dates. See <fo:basic-link external-destination="http://emr.cs.iit.edu/home/reingold/calendar-book/second-edition">Calendrical Calculations</fo:basic-link> by Reingold &amp; Dershowitz for more details. Date information from Calendrical Calculations has been used to cross-test the correctness of the Gregorian calendar implementation. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">All types for the gregorian system are found in namespace boost::gregorian. The library supports a convenience header boost/date_time/gregorian/gregorian_types.hpp that will include all the classes of the library with no input/output dependency. Another header boost/date_time/gregorian/gregorian.hpp will include the types and the input/output code. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The class <fo:basic-link internal-destination="date_time.gregorian.date_class">boost::gregorian::date</fo:basic-link> is the primary temporal type for users. If you are interested in learning about writing programs do specialized date calculations such as finding the "first sunday in april" see the date <fo:basic-link internal-destination="date_time.gregorian.date_algorithms">generators and algorithms page</fo:basic-link>. 
  </fo:block><fo:wrapper id="greg_ex"/><fo:block id="id432850"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Usage Examples</fo:marker><fo:block font-size="14.4pt">Usage Examples</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id432856" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.examples.days_alive">Days Alive</fo:basic-link><fo:basic-link internal-destination="date_time.examples.days_till_new_year">Days Till New Year</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Simple date arithmetic. Retrieve current day from clock.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.examples.dates_as_strings">Dates as strings</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Simple parsing and formatting of dates from/to strings</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.examples.date_period_calc">Date Period Calculations</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>See if a date is in a set of date periods (eg: is it a holiday/weekend)</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.examples.print_month">Print a month</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Small utility program which prints out all the days in a month from command line. Need to know if 1999-Jan-1 was a Friday or a Saturday? This program shows how to do it.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.examples.print_holidays">Print Holidays</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Uses date generators to convert abstract specification into concrete set of dates.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="date_time.gregorian.date_class"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Date Class</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:basic-link internal-destination="date_intro">Introduction</fo:basic-link> --
  <fo:basic-link internal-destination="date_header">Header</fo:basic-link> --
  <fo:basic-link internal-destination="date_construction">Construction</fo:basic-link> --
  <fo:basic-link internal-destination="date_construct_from_string">Construct from String</fo:basic-link> --
  <fo:basic-link internal-destination="date_construct_from_clock">Construct from Clock</fo:basic-link> --
  <fo:basic-link internal-destination="date_accessors">Accessors</fo:basic-link> --
  <fo:basic-link internal-destination="date_convert_to_string">Convert to String</fo:basic-link> --
  <fo:basic-link internal-destination="date_operators">Operators</fo:basic-link><fo:wrapper id="date_intro"/><fo:block id="id433054"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The class boost::gregorian::date is the primary interface for date programming. In general, the date class is immutable once constructed although it does allow assignment. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Other techniques for creating dates include <fo:basic-link internal-destination="date_time.gregorian.date_iterators">date iterators</fo:basic-link> and <fo:basic-link internal-destination="date_time.gregorian.date_algorithms">date algorithms or generators</fo:basic-link>. 
  </fo:block><fo:wrapper id="date_header"/><fo:block id="id433093"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Header</fo:marker><fo:block font-size="14.4pt">Header</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id433100" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      #include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
      or
      #include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types
    </fo:block></fo:block><fo:wrapper id="date_construction"/><fo:block id="id433113"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Construction</fo:marker><fo:block font-size="14.4pt">Construction</fo:block></fo:block></fo:block><fo:block id="id433118" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date(greg_year year, greg_month month, greg_day day)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Construct from parts of date. Throws bad_year, bad_day_of_month, or bad_day_month (derivatives of std::out_of_range) if the year, month or day are out of range.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>date d(2002,Jan,10)</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date(date d)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Copy constructor</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>date d1(d)</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date(special_values sv)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Constructor for infinities, not-a-date-time, max_date_time, and min_date_time</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d1(neg_infin);
	    date d2(pos_infin);
	    date d3(not_a_date_time);
	    date d4(max_date_time);
	    date d5(min_date_time);</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Default constructor. Creates a date object initialized to not_a_date_time. NOTE: this constructor can be disabled by defining DATE_TIME_NO_DEFAULT_CONSTRUCTOR (see compiler_config.hpp)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>date d; // d =&gt; not_a_date_time</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:wrapper id="date_construct_from_string"/><fo:block id="id433191"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Construct from String</fo:marker><fo:block font-size="14.4pt">Construct from String</fo:block></fo:block></fo:block><fo:block id="id433196" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date from_string(const std::string&amp;)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>From delimited date string where with order year-month-day eg: 2002-1-25</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    std::string ds("2002/1/25");
	    date d(from_string(ds))</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date from_undelimited_string(const std::string&amp;)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>From iso type date string where with order year-month-day eg: 20020125</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>
	    std::string ds("20020125");
	    date d(from_undelimited_string(ds))</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:wrapper id="date_construct_from_clock"/><fo:block id="id433247"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Construct from Clock</fo:marker><fo:block font-size="14.4pt">Construct from Clock</fo:block></fo:block></fo:block><fo:block id="id433252" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>day_clock::local_day()</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the local day based on the time zone settings of the computer.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>date d(day_clock::local_day())</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>day_clock::universal_day()</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the UTC day.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>date d(day_clock::universal_day())</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:wrapper id="date_accessors"/><fo:block id="id433296"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Accessors</fo:marker><fo:block font-size="14.4pt">Accessors</fo:block></fo:block></fo:block><fo:block id="id433301" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_year year() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the year part of the date.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(2002,Jan,10); 
	    d.year() --&gt; 2002;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_month month() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the month part of the date.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(2002,Jan,10); 
	    d.month() --&gt; 1;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_day day() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Get the day part of the date.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(2002,Jan,10); 
	    d.day() --&gt; 10;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_ymd year_month_day() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return a year_month_day struct. More efficient when all 3 parts of the date are needed.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(2002,Jan,10);
	    date::ymd_type ymd = d.year_month_day();
	    ymd.year --&gt; 2002, ymd.month --&gt; 1, ymd.day --&gt; 10</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_day_of_week day_of_week() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the day of the week (eg: Sunday, Monday, etc.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(2002,Jan,10);
	    d.day() --&gt; Thursday;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool is_infinity() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Returns true if date is either positive or negative infinity</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(pos_infin); 
	    d.is_infinity() --&gt; true;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool is_neg_infinity() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Returns true if date is negative infinity</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(neg_infin);
	    d.is_neg_infinity() --&gt; true;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool is_pos_infinity() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Returns true if date is positive infinity</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(neg_infin); 
	    d.is_pos_infinity() --&gt; true;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool is_not_a_date() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Returns true if value is not a date</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(not_a_date_time);
	    d.is_not_a_date() --&gt; true;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>long modjulian_day() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Returns the modified julian day for the date.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>long julian_day() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Returns the julian day for the date.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>int week_number() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Returns the ISO 8601 week number for the date.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:wrapper id="date_convert_to_string"/><fo:block id="id433459"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Convert to String</fo:marker><fo:block font-size="14.4pt">Convert to String</fo:block></fo:block></fo:block><fo:block id="id433464" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>std::string to_simple_string(date d)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>To YYYY-mmm-DD string where mmm 3 char month name.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>2002-Jan-01</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>std::string to_iso_string(date d)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>To YYYYMMDD where all components are integers.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>20020131</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>std::string to_iso_extended_string(date d)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> To YYYY-MM-DD where all components are integers.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>2002-01-31</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:wrapper id="date_operators"/><fo:block id="id433520"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Operators</fo:marker><fo:block font-size="14.4pt">Operators</fo:block></fo:block></fo:block><fo:block id="id433525" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>operator&lt;&lt;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Stream output operator</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(2002,Jan,1)
	    std::cout &lt;&lt; d &lt;&lt; std::endl;
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> 
	    operator==, operator!=,
	    operator&gt;, operator&lt;
	    operator&gt;=, operator&lt;=</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>A full complement of comparison operators</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>d1 == d2, etc</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date operator+(date_duration) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return a date adding a day offset</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(2002,Jan,1);
	    date_duration dd(1);
	    date d2 = d + dd;
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date operator-(date_duration) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return a date by adding a day offset</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(2002,Jan,1);
	    date_duration dd(1);
	    date d2 = d - dd;
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_duration operator-(date) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return a date duration by subtracting two dates</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>
	    date d1(2002,Jan,1);
	    date d2(2002,Jan,2);
	    date_duration dd = d2-d1;
	  </fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block><fo:block id="date_time.gregorian.date_duration"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Date Duration (aka Days)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:basic-link internal-destination="duration_intro">Introduction</fo:basic-link> --
  <fo:basic-link internal-destination="duration_header">Header</fo:basic-link> --
  <fo:basic-link internal-destination="duration_construction">Construction</fo:basic-link> --
  <fo:basic-link internal-destination="duration_operators">Operators</fo:basic-link><fo:wrapper id="duration_intro"/><fo:block id="id433664"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    As of version 1_32 the date_duration class has been typdefed as days in the boost::gregorian namespace. Throughout the examples you will find days used instead of date_duration.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The class boost::gregorian::date_duration is a simple day count used for arithmetic with <fo:basic-link internal-destination="date_time.gregorian.date_class">gregorian::date</fo:basic-link>. A duration can be either positive or negative. 
  </fo:block><fo:wrapper id="duration_header"/><fo:block id="id433695"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Header</fo:marker><fo:block font-size="14.4pt">Header</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id433701" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      #include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
      or
      #include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types
    </fo:block></fo:block><fo:wrapper id="duration_construction"/><fo:block id="id433715"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Construction</fo:marker><fo:block font-size="14.4pt">Construction</fo:block></fo:block></fo:block><fo:block id="id433720" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_duration(long)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Create a duration count.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block> date_duration dd(3); //3 days</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:wrapper id="duration_accessors"/><fo:block id="id433754"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Accessors</fo:marker><fo:block font-size="14.4pt">Accessors</fo:block></fo:block></fo:block><fo:block id="id433759" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>long days() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Get the day count.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>date_duration dd(3); dd.days() --&gt; 3</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool is_negative() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>True if number of days is less than zero.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>date_duration dd(-1); dd.is_negative() --&gt; true</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>static date_duration unit()</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return smallest possible unit of duration type.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>date_duration::unit() --&gt; date_duration(1)</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:wrapper id="duration_operators"/><fo:block id="id433816"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Operators</fo:marker><fo:block font-size="14.4pt">Operators</fo:block></fo:block></fo:block><fo:block id="id433822" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>
	    operator==, operator!=,
	    operator&gt;, operator&lt;
	    operator&gt;=, operator&lt;=
	  </fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>A full complement of comparison operators</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>dd1 == dd2, etc</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_duration operator+(date_duration) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Add date durations.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_duration dd1(3);
	    date_duration dd2(5);
	    date_duration dd3 = dd1 + dd2;
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_duration operator-(date_duration) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Subtract durations.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>
	    date_duration dd1(3);
	    date_duration dd2(5);
	    date_duration dd3 = dd1 - dd2;
	  </fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block><fo:block id="date_time.gregorian.date_period"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Date Period</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:basic-link internal-destination="period_intro">Introduction</fo:basic-link> --
  <fo:basic-link internal-destination="period_header">Header</fo:basic-link> --
  <fo:basic-link internal-destination="period_construction">Construction</fo:basic-link> --
  <fo:basic-link internal-destination="period_accessors">Accessors</fo:basic-link> --
  <fo:basic-link internal-destination="period_convert_to_string">Convert to String</fo:basic-link> --
  <fo:basic-link internal-destination="period_operators">Operators</fo:basic-link><fo:wrapper id="period_intro"/><fo:block id="id433956"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The class boost::gregorian::date_period provides direct representation for ranges between two dates. Periods provide the ability to simplify some types of calculations by simplifying the conditional logic of the program. For example, testing if a date is within an irregular schedule such as a weekend or holiday can be accomplished using collections of date periods. This is facilitated by several methods that allow evaluation if a date_period intersects with another date period, and to generate the period resulting from the intersection. The <fo:basic-link internal-destination="date_time.examples.period_calc">period calculation example</fo:basic-link> provides an example of this.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Date periods used in combination with infinity values have the ability to represent complex concepts such as 'until further notice'. 
  </fo:block><fo:wrapper id="period_header"/><fo:block id="id433992"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Header</fo:marker><fo:block font-size="14.4pt">Header</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id433999" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      #include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
      or
      #include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types
    </fo:block></fo:block><fo:wrapper id="period_construction"/><fo:block id="id434013"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Construction</fo:marker><fo:block font-size="14.4pt">Construction</fo:block></fo:block></fo:block><fo:block id="id434018" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_period(date begin, date end)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Create a period as [begin, end). If last is &lt;= begin then the period will be defined as null.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>date_period dp(date(2002,Jan,10), date(2002,Jan,12));</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_period(date start, date_duration len)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Create a period as [begin, begin+len). If len is &lt;= zero then the period will be defined as null.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>date_period dp(date(2002,Jan,10), date_duration(2));</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_period(date_period rhs)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Copy constructor</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block> date_period dp1(dp)</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:wrapper id="period_accessors"/><fo:block id="id434080"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Accessors</fo:marker><fo:block font-size="14.4pt">Accessors</fo:block></fo:block></fo:block><fo:block id="id434086" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date begin() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Return first day of period.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp(date(2002,Jan,1), date(2002,Jan,10));
	    dp.begin() --&gt; 2002-Jan-01
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date last() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return last date in the period</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp(date(2002,Jan,1), date(2002,Jan,10));
	    dp.last() --&gt; 2002-Jan-09
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date end() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return one past the last in period</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp(date(2002,Jan,1), date(2002,Jan,10));
	    dp.end() --&gt; 2002-Jan-10
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_duration length() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return the length of the date_period</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp(date(2002,Jan,1), date_duration(2));
	    dp.length() --&gt; 2
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool is_null() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>True if period is not well formed. eg: start less than end</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp(date(2002,Jan,10), date(2002,Jan,1));
	    dp.begin() --&gt; true
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool contains(date) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>True if date is within the period</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp(date(2002,Jan,1), date(2002,Jan,10));
	    dp.contains(date(2002,Jan,2)) --&gt; true
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool contains(date_period) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>True if date period is within the period</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp1(date(2002,Jan,1), date(2002,Jan,10));
	    date_period dp2(date(2002,Jan,2), date(2002,Jan,3));
	    dp1.contains(dp2) --&gt; true
	    dp2.contains(dp1) --&gt; false
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool intersects(date_period) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>True if periods overlap</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp1(date(2002,Jan,1), date(2002,Jan,10));
	    date_period dp2(date(2002,Jan,2), date(2002,Jan,3));
	    dp2.intersects(dp1) --&gt; true
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_period intersection(date_period) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Calculate the intersection of 2 periods. Null if no intersection.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp1(date(2002,Jan,1), date(2002,Jan,10));
	    date_period dp2(date(2002,Jan,2), date(2002,Jan,3));
	    dp2.intersection(dp1) --&gt; dp2
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_period is_adjacent(date_period) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Check if two periods are adjacent, but not overlapping.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp1(date(2002,Jan,1), date(2002,Jan,3));
	    date_period dp2(date(2002,Jan,3), date(2002,Jan,10));
	    dp2.is_adjacent(dp1) --&gt; true
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_period is_after(date) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Determine the period is after a given date.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp1(date(2002,Jan,10), date(2002,Jan,30));
	    date d(2002,Jan,3);
	    dp1.is_after(d) --&gt; true
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_period is_before(date) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Determine the period is before a given date.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp1(date(2002,Jan,1), date(2002,Jan,3));
	    date d(2002,Jan,10);
	    dp1.is_before(d) --&gt; true
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_period merge(date_period) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Returns union of two periods. Null if no intersection.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp1(date(2002,Jan,1), date(2002,Jan,10));
	    date_period dp2(date(2002,Jan,9), date(2002,Jan,31));
	    dp2.merge(dp1) --&gt; 2002-Jan-01/2002-Jan-31
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_period span(date_period) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Combines two periods and any gap between them such that start = min(p1.start, p2.start) and end = max(p1.end , p2.end)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date_period dp1(date(2002,Jan,1), date(2002,Jan,5));
	    date_period dp2(date(2002,Jan,9), date(2002,Jan,31));
	    dp2.hull(dp1) --&gt; 2002-Jan-01/2002-Jan-31
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_period shift(date_duration)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Add duration to both start and end.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>
	    date_period dp1(date(2002,Jan,1), date(2002,Jan,10));
	    dp1.shift(date_duration(1)); --&gt; 2002-Jan-02/2002-Jan-11
	  </fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:wrapper id="period_convert_to_string"/><fo:block id="id434320"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Convert to String</fo:marker><fo:block font-size="14.4pt">Convert to String</fo:block></fo:block></fo:block><fo:block id="id434326" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>std::string to_simple_string(date_period dp)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>To [YYYY-mmm-DD/YYYY-mmm-DD] string where mmm is 3 char month name.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>[2002-Jan-01/2002-Jan-31]</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:wrapper id="period_operators"/><fo:block id="id434361"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Operators</fo:marker><fo:block font-size="14.4pt">Operators</fo:block></fo:block></fo:block><fo:block id="id434367" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>operator&lt;&lt;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ostream operator for date_period. Uses facet to format time points. Typical output: [2002-Jan-01/2002-Jan-31].</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>std::cout &lt;&lt; dp &lt;&lt; std::endl;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>
	    operator==, operator!=,
	    operator&gt;, operator&lt;
	  </fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>A full complement of comparison operators</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block> dp1 == dp2, etc</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>operator&lt;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>True if dp1.end() less than dp2.begin()</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block> dp1 &lt; dp2, etc</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>operator&gt;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>True if dp1.begin() greater than dp2.end()</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>dp1 &gt; dp2, etc</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block><fo:block id="date_time.gregorian.date_iterators"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Date Iterators</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:basic-link internal-destination="iterators_intro">Introduction</fo:basic-link> --
  <fo:basic-link internal-destination="iterators_header">Header</fo:basic-link> --
  <fo:basic-link internal-destination="iterators_overview">Overview</fo:basic-link><fo:wrapper id="iterators_intro"/><fo:block id="id434483"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Date iterators provide a standard mechanism for iteration through dates. Date iterators are a model of <fo:basic-link external-destination="http://www.sgi.com/tech/stl/InputIterator.html">Input Iterator</fo:basic-link> and can be used to populate collections with dates and other date generation tasks. For example, the <fo:basic-link internal-destination="date_time.examples.print_month">print month</fo:basic-link> example iterates through all the days in a month and prints them. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    All of the iterators here derive from boost::gregorian::date_iterator. 
  </fo:block><fo:wrapper id="iterators_header"/><fo:block id="id434521"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Header</fo:marker><fo:block font-size="14.4pt">Header</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id434527" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      #include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
      or
      #include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types
    </fo:block></fo:block><fo:wrapper id="iterators_overview"/><fo:block id="id434541"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Overview</fo:marker><fo:block font-size="14.4pt">Overview</fo:block></fo:block></fo:block><fo:block id="id434546" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Class</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Construction Parameters</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_iterator</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Common base class for all day level iterators.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>day_iterator</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date start_date, int day_count=1</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Iterate day_count days at a time.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>week_iterator</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> date start_date, int week_offset=1</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Iterate week_offset weeks at a time.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>month_iterator</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date start_date, int month_offset=1</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    Iterate month_offset months. There are special rules for handling the end of the month. These are: if start date is last day of the month, always adjust to last day of the month. If date is beyond the end of the month (eg: jan 31 + 1 month) adjust back to end of month.
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>year_iterator</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date start_date, int year_offset=1</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Iterate year_offset years. The year_iterator will always land on the day of the date parameter except when date is Feb 28 in a non-leap year. In this case the iterator will return Feb 29 for leap years (eg: 2003-Feb-28, 2004-Feb-29, 2005-Feb-28).</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block><fo:block id="date_time.gregorian.date_algorithms"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Date Generators/Algorithms</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id434635"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Date Generators/Algorithms</fo:marker><fo:block font-size="17.28pt">Date Generators/Algorithms</fo:block></fo:block></fo:block><fo:basic-link internal-destination="algo_intro">Introduction</fo:basic-link> --
  <fo:basic-link internal-destination="algo_header">Header</fo:basic-link> --
  <fo:basic-link internal-destination="algo_overview">Class Overview</fo:basic-link> --
  <fo:basic-link internal-destination="algo_func_overview">Function Overview</fo:basic-link><fo:wrapper id="algo_intro"/><fo:block id="id434682"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> 
    Date algorithms or generators are tools for generating other dates or schedules of dates. A generator function starts with some part of a date such as a month and day and is supplied another part to then generate a concrete date. This allows the programmer to represent concepts such as "The first Sunday in February" and then create a concrete set of dates when provided with one or more years.
    <fo:inline font-style="italic">Note</fo:inline>: As of boost version 1_31_0, date generator names have been changed. Old names are still available but are no longer documented and may someday be deprecated
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Also provided are stand-alone functions for generating a date, or calculation a duration of days. These functions take a date object and a weekday object as parameters.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">All date generator classes and functions are in the boost::gregorian namespace.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> 
    The <fo:basic-link internal-destination="date_time.examples.print_holidays">print holidays</fo:basic-link> example shows a detailed usage example. 
  </fo:block><fo:wrapper id="algo_header"/><fo:block id="id434731"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Header</fo:marker><fo:block font-size="14.4pt">Header</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    #include "boost/date_time/date_generators.hpp" 
  </fo:block><fo:wrapper id="algo_overview"/><fo:block id="id434745"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Overview</fo:marker><fo:block font-size="14.4pt">Overview</fo:block></fo:block></fo:block><fo:block id="id434750" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Class</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Construction Parameters</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">get_date Parameter</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>year_based_generator</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>abstract base class</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_year year</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A unifying date_generator base type for: partial_date, nth_day_of_the_week_in_month, first_day_of_the_week_in_month, and last_day_of_the_week_in_month
          </fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
            The <fo:basic-link internal-destination="date_time.examples.print_holidays">print holidays</fo:basic-link> example shows a detailed usage example.
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last_day_of_the_week_in_month</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_weekday or weekday, greg_month or month</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_year or year</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Calculate something like last Monday of January</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    last_day_of_the_week_in_month lwdm(Monday,Jan);
	    date d = lwdm.get_date(2002);//2002-Jan-28
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>first_day_of_the_week_in_month</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_weekday or weekday, greg_month or month</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_year or year</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Calculate something like first Monday of January</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    first_day_of_the_week_in_month fdm(Monday,Jan);
	    date d = fdm.get_date(2002);//2002-Jan-07
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>partial_date</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_day, greg_month or month</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_year</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Generates a date by applying the year to the given month and day.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    partial_date pd(1,Jan);
	    date d = pd.get_date(2002);//2002-Jan-01
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>first_day_of_the_week_after</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> greg_weekday or weekday</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_class">date</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Calculate something like First Sunday after Jan 1,2002</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    first_day_of_the_week_after fdaf(Monday);
	    date d = fdaf.get_date(date(2002,Jan,1));//2002-Jan-07
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>first_day_of_the_week_before</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> greg_weekday or weekday</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_class">date</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Calculate something like First Monday before Feb 1,2002</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>
	    first_day_of_the_week_before fdbf(Monday);
	    date d = fdbf.get_date(date(2002,Feb,1));//2002-Jan-28
	  </fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:wrapper id="algo_func_overview"/><fo:block id="id434910"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Function Overview</fo:marker><fo:block font-size="14.4pt">Function Overview</fo:block></fo:block></fo:block><fo:block id="id434914" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Function Prototype</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_duration">days</fo:basic-link> days_until_weekday (const <fo:basic-link internal-destination="date_time.gregorian.date_class">date</fo:basic-link>&amp;, const greg_weekday&amp;)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Calculates the number of days from given date until given weekday.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(2004,Jun,1); // Tuesday
	    greg_weekday gw(Friday);
	    days_until_weekday(d, gw); // 3 days
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_duration">days</fo:basic-link> days_before_weekday (const <fo:basic-link internal-destination="date_time.gregorian.date_class">date</fo:basic-link>&amp;, const greg_weekday&amp;)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Calculates the number of day from given date to previous given weekday.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(2004,Jun,1); // Tuesday
	    greg_weekday gw(Friday);
	    days_before_weekday(d, gw); // 4 days
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_class">date</fo:basic-link> next_weekday (const <fo:basic-link internal-destination="date_time.gregorian.date_class">date</fo:basic-link>&amp;, const greg_weekday&amp;)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Generates a date object representing the date of the following weekday from the given date.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	    date d(2004,Jun,1); // Tuesday
	    greg_weekday gw(Friday);
	    next_weekday(d, gw); // 2004-Jun-4
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_class">date</fo:basic-link> previous_weekday (const <fo:basic-link internal-destination="date_time.gregorian.date_class">date</fo:basic-link>&amp;, const greg_weekday&amp;)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Generates a date object representing the date of the previous weekday from the given date.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>
	    date d(2004,Jun,1); // Tuesday
	    greg_weekday gw(Friday);
	    previous_weekday(d, gw); // 2004-May-28
	  </fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block><fo:block id="date_time.gregorian.gregorian_calendar"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Gregorian Calendar</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:basic-link internal-destination="gregcal_intro">Introduction</fo:basic-link> --
  <fo:basic-link internal-destination="gregcal_header">Header</fo:basic-link> --
  <fo:basic-link internal-destination="gregcal_functions">Functions</fo:basic-link><fo:wrapper id="gregcal_intro"/><fo:block id="id435103"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The class boost::gregorian::gregorian_calendar implements the functions necessary to create the gregorian date system. It converts to the year-month-day form of a date to a day number representation and back. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    For most purposes this class is simply accessed by <fo:basic-link internal-destination="date_time.gregorian.date_class">gregorian::date</fo:basic-link> and is not used directly by the user. However, there are useful functions that might be of use such as the end_of_month_day function. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The <fo:basic-link internal-destination="date_time.examples.print_month">print month</fo:basic-link> example demonstrates this. 
  </fo:block><fo:wrapper id="gregcal_header"/><fo:block id="id435145"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Header</fo:marker><fo:block font-size="14.4pt">Header</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id435152" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      #include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
      or
      #include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types
    </fo:block></fo:block><fo:wrapper id="gregcal_functions"/><fo:block id="id435165"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Functions</fo:marker><fo:block font-size="14.4pt">Functions</fo:block></fo:block></fo:block><fo:block id="id435171" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>static short day_of_week(ymd_type)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return the day of the week (0==Sunday, 1==Monday, etc)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>See also <fo:basic-link internal-destination="date_time.gregorian.date_class">gregorian::date</fo:basic-link> day_of_week</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>static date_int_type day_number(ymd_type)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Convert a ymd_type into a day number. The day number is an absolute number of days since the epoch start.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>static short end_of_month_day(year_type, month_type)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Given a year and month determine the last day of the month.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>static ymd_type from_day_number(date_int_type)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Convert a day number to a ymd struct.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>static bool is_leap_year(year_type)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Returns true if specified year is a leap year.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>gregorian_calendar::is_leap_year(2000) --&gt; true</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block><fo:block id="date_time.gregorian.day_clock_class"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Class day_clock</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:basic-link internal-destination="date_construct_from_clock">Class day_clock</fo:basic-link></fo:block><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block><fo:block id="date_time.posix_time"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Posix Time</fo:marker><fo:block font-size="17.28pt">Posix Time</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id435292"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Posix Time System</fo:marker><fo:block font-size="17.28pt">Posix Time System</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="posix_intro">Introduction</fo:basic-link> -- 
    <fo:basic-link internal-destination="posix_ex">Usage Examples</fo:basic-link></fo:block><fo:wrapper id="posix_intro"/><fo:block id="id435321"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Defines a non-adjusted time system with nano-second/micro-second resolution and stable calculation properties.  The nano-second resolution option uses 96 bits of underlying storage for each ptime while the micro-second resolution uses 64 bits per ptime (see <fo:basic-link internal-destination="date_time.buildinfo">Build Options</fo:basic-link> for details). This time system uses the Gregorian calendar to implement the date portion of the time representation. 
  </fo:block><fo:wrapper id="posix_ex"/><fo:block id="id435351"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Usage Examples</fo:marker><fo:block font-size="14.4pt">Usage Examples</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id435357" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.examples.time_math">Time Math</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A few simple calculations using ptime and time_durations.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.examples.print_hours">Print Hours</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Retrieve time from clock, use a time_iterator.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.examples.local_utc_conversion">Local to UTC Conversion</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Demonstrates a couple different ways to convert a local to UTC time including daylight savings rules.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.examples.time_periods">Time Periods</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Some simple examples of intersection and display of time periods.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="date_time.posix_time.ptime_class"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Ptime Class</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:basic-link internal-destination="ptime_intro">Introduction</fo:basic-link> --
  <fo:basic-link internal-destination="ptime_header">Header</fo:basic-link> --
  <fo:basic-link internal-destination="ptime_constr">Construction</fo:basic-link> --
  <fo:basic-link internal-destination="ptime_from_string">Construct from String</fo:basic-link> --
  <fo:basic-link internal-destination="ptime_from_clock">Construct from Clock</fo:basic-link> --
  <fo:basic-link internal-destination="ptime_from_funcs">Construct using Conversion functions</fo:basic-link> --
  <fo:basic-link internal-destination="ptime_accessors">Accessors</fo:basic-link> --
  <fo:basic-link internal-destination="ptime_to_string">Conversion To String</fo:basic-link> --
  <fo:basic-link internal-destination="ptime_operators">Operators</fo:basic-link><fo:wrapper id="ptime_intro"/><fo:block id="id435538"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The class boost::posix_time::ptime is the primary interface for time point manipulation. In general, the ptime class is immutable once constructed although it does allow assignment. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Class ptime is dependent on <fo:basic-link internal-destination="date_time.gregorian.date_class">gregorian::date</fo:basic-link> for the interface to the date portion of a time point. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Other techniques for creating times include <fo:basic-link internal-destination="date_time.posix_time.time_iterators">time iterators</fo:basic-link>. 
  </fo:block><fo:wrapper id="ptime_header"/><fo:block id="id435582"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Header</fo:marker><fo:block font-size="14.4pt">Header</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id435588" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      #include "boost/date_time/posix_time/posix_time.hpp" //include all types plus i/o
      or
      #include "boost/date_time/posix_time/posix_time_types.hpp" //no i/o just types
    </fo:block></fo:block><fo:wrapper id="ptime_constr"/><fo:block id="id435602"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Construction</fo:marker><fo:block font-size="14.4pt">Construction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id435608" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime(date,time_duration)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Construct from a date and offset</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      ptime t1(date(2002,Jan,10), time_duration(1,2,3));
	      ptime t2(date(2002,Jan,10), hours(1)+nanosec(5));
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime(ptime)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Copy constructor</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>ptime t3(t1)</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime(special_values sv)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Constructor for infinities, not-a-date-time, max_date_time, and min_date_time</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      ptime d1(neg_infin);
	      ptime d2(pos_infin);
	      ptime d3(not_a_date_time);
	      ptime d4(max_date_time);
	      ptime d5(min_date_time);</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Default constructor. Creates a ptime object initialized to not_a_date_time. NOTE: this constructor can be disabled by defining DATE_TIME_NO_DEFAULT_CONSTRUCTOR (see compiler_config.hpp)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>ptime p; // p =&gt; not_a_date_time</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="ptime_from_string"/><fo:block id="id435679"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Construct from String</fo:marker><fo:block font-size="14.4pt">Construct from String</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id435686" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime time_from_string(const std::string&amp;)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>From delimited string.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>std::string ts("2002-01-20 23:59:59.000");
ptime t(time_from_string(ts))</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime from_iso_string(const std::string&amp;)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>From non delimited iso form string.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>std::string ts("20020131T235959");
ptime t(from_iso_string(ts))</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="ptime_from_clock"/><fo:block id="id435735"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Construct from Clock</fo:marker><fo:block font-size="14.4pt">Construct from Clock</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id435741" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>static ptime second_clock::local_time();</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the local time, second level resolution, based on the time zone settings of the computer.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>ptime t(second_clock::local_time())</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>static ptime second_clock::universal_time()</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the UTC time.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>ptime t(second_clock::universal_day())</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>static ptime microsec_clock::local_time()</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the local time using a subsecond resolution clock.  On Unix systems this is implemented using GetTimeOfDay.  On most Win32 platforms it is implemented using ftime.  Win32 systems often do not achieve microsecond resolution via this API.  If higher resolution is critical to your application test your platform to see the acheived resolution.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>ptime t(microsec_clock::local_time())</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="ptime_from_funcs"/><fo:block id="id435809"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Construct using Conversion Functions</fo:marker><fo:block font-size="14.4pt">Construct using Conversion Functions</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id435816" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime from_time_t(time_t t);</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Converts a time_t into a ptime.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>ptime t = from_time_t(tt);</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime from_ftime&lt;ptime&gt;(FILETIME ft);</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Creates a ptime object from a FILETIME structure.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>ptime t = from_ftime&lt;ptime&gt;(ft);</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="ptime_accessors"/><fo:block id="id435862"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Accessors</fo:marker><fo:block font-size="14.4pt">Accessors</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id435868" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date date() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the date part of a time.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      date d(2002,Jan,10);
	      ptime t(d, hour(1));
	      t.date() --&gt; 2002-Jan-10;
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_duration time_of_day() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the time offset in the day.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>
	      date d(2002,Jan,10);
	      ptime t(d, hour(1));
	      t.time_of_day() --&gt; 01:00:00;
	    </fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="ptime_to_string"/><fo:block id="id435917"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Conversion to String</fo:marker><fo:block font-size="14.4pt">Conversion to String</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id435924" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>std::string to_simple_string(ptime)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>To YYYY-mmm-DD HH:MM:SS.fffffffff string where mmm 3 char month name. Fractional seconds only included if non-zero.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>2002-Jan-01 10:00:01.123456789</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>std::string to_iso_string(ptime)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Convert to form YYYYMMDDTHHMMSS,fffffffff where T is the date-time separator</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>20020131T100001,123456789</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>std::string to_iso_extended_string(ptime)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Convert to form YYYY-MM-DDTHH:MM:SS,fffffffff where T is the date-time separator</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>2002-01-31T10:00:01,123456789</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="ptime_operators"/><fo:block id="id435982"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Operators</fo:marker><fo:block font-size="14.4pt">Operators</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id435988" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>
	      operator==, operator!=,
	      operator&gt;, operator&lt;
	      operator&gt;=, operator&lt;=
	    </fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>A full complement of comparison operators</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>t1 == t2, etc</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime operator+(date_duration) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return a ptime adding a day offset</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      date d(2002,Jan,1);
	      ptime t(d,minutes(5));
	      date_duration dd(1);
	      ptime t2 = t + dd;
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime operator-(date_duration) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return a ptime subtracting a day offset</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      date d(2002,Jan,1);
	      ptime t(d,minutes(5));
	      date_duration dd(1);
	      ptime t2 = t - dd;
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime operator+(time_duration) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return a ptime adding a time duration</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      date d(2002,Jan,1);
	      ptime t(d,minutes(5));
	      ptime t2 = t + hours(1) + minutes(2);
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime operator-(time_duration) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return a ptime subtracting a time duration</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      date d(2002,Jan,1);
	      ptime t(d,minutes(5));
	      ptime t2 = t - minutes(2);
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_duration operator-(ptime) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Take the difference between two times.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>
	      date d(2002,Jan,1);
	      ptime t1(d,minutes(5));
	      ptime t2(d,seconds(5));
	      time_duration t3 = t2 - t1;//negative result
	    </fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block><fo:block id="date_time.posix_time.time_duration"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Time Duration</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:basic-link internal-destination="time_duration_intro">Introduction</fo:basic-link> --
  <fo:basic-link internal-destination="time_duration_header">Header</fo:basic-link> --
  <fo:basic-link internal-destination="time_duration_constr">Construction</fo:basic-link> --
  <fo:basic-link internal-destination="time_duration_count_constr">Count Based Construction</fo:basic-link> --
  <fo:basic-link internal-destination="time_duration_from_string">Construct from String</fo:basic-link> --
  <fo:basic-link internal-destination="time_duration_accessors">Accessors</fo:basic-link> --
  <fo:basic-link internal-destination="time_duration_to_string">Conversion To String</fo:basic-link> --
  <fo:basic-link internal-destination="time_duration_operators">Operators</fo:basic-link><fo:wrapper id="time_duration_intro"/><fo:block id="id436186"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The class boost::posix_time::time_duration the base type responsible for representing a length of time. A duration can be either positive or negative. The general time_duration class provides a constructor that takes a count of the number of hours, minutes, seconds, and fractional seconds count as shown in the code fragment below. The resolution of the time_duration is configureable at compile time. See <fo:basic-link internal-destination="date_time.buildinfo">Build-Compiler Information</fo:basic-link> for more information. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id436210" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      using namespace boost::posix_time;
      time_duration td(1,2,3,4); //01:02:03.000000004 when resolution is nano seconds
      time_duration td(1,2,3,4); //01:02:03.000004 when resolution is micro seconds
    </fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Several small helper classes that derive from a base time_duration, as shown below, to adjust for different resolutions. These classes can shorten code and make the intent clearer.
  </fo:block><fo:external-graphic src="../libs/date_time/libs/libs/date_time/doc/time_duration_inherit.png" width="auto" height="auto" content-width="auto" content-height="auto"/><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    As an example: 
    <fo:block id="id436232" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">  
      using namespace boost::posix_time;
      
      time_duration td = hours(1) + seconds(10); //01:00:01
      td = hours(1) + nanosec(5); //01:00:00.000000005
    </fo:block>
    Note that the existence of the higher resolution classes (eg: nanosec) depends on the installation of the library. See <fo:basic-link internal-destination="date_time.buildinfo">Build-Compiler Information</fo:basic-link> for more information. 
  </fo:block><fo:wrapper id="time_duration_header"/><fo:block id="id436258"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Header</fo:marker><fo:block font-size="14.4pt">Header</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id436265" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      #include "boost/date_time/posix_time/posix_time.hpp" //include all types plus i/o
      or
      #include "boost/date_time/posix_time/posix_time_types.hpp" //no i/o just types
    </fo:block></fo:block><fo:wrapper id="time_duration_constr"/><fo:block id="id436278"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Construction</fo:marker><fo:block font-size="14.4pt">Construction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id436285" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_duration(hours,minutes,seconds,fractional_seconds)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Construct ad duration from the counts</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>time_duration td(1,2,3,9); //1 hr 2 min 3 sec 9 nanoseconds</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="time_duration_count_constr"/><fo:block id="id436320"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Count Based Construction</fo:marker><fo:block font-size="14.4pt">Count Based Construction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id436326" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>hours(long)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Number of hours</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration td = hours(3);</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>minutes(long)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Number of minutes</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration td = minutes(3);</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>seconds(long)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Number of seconds</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration td = seconds(3);</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>millisec(long)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Number of milliseconds.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration td = millisec(3);</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>microsec(long)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Number of microseconds.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration td = microsec(3);</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>nanosec(long)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Number of nanoseconds.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>time_duration td = nanosec(3);</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="time_duration_from_string"/><fo:block id="id436412"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Construct from String</fo:marker><fo:block font-size="14.4pt">Construct from String</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id436418" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_duration duration_from_string(const std::string&amp;)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>From delimited string.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>
	      std::string ts("23:59:59.000");
	      time_duration td(duration_from_string(ts))
	    </fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="time_duration_accessors"/><fo:block id="id436455"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Accessors</fo:marker><fo:block font-size="14.4pt">Accessors</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id436462" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>long hours() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the number of normalized hours.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration td(1,2,3); td.hours() --&gt; 1</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>long minutes() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the number of minutes normalized (0..59).</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration td(1,2,3); td.minutes() --&gt; 2</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>long seconds() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the normalized number of second (0..59).</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration td(1,2,3); td.seconds() --&gt; 3</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>long total_seconds() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the total number of seconds truncating any fractional seconds.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      time_duration td(1,2,3,10);
	      td.total_seconds() --&gt; (1*3600) + (2*60) + 3 == 3723
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>long fractional_seconds() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Get the number of fractional seconds.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration td(1,2,3, 1000); td.fractional_seconds() --&gt; 1000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool is_negative() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>True if duration is negative.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration td(-1,0,0); td.is_negative() --&gt; true</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_duration invert_sign() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Generate a new duration with the sign inverted/</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration td(-1,0,0); td.invert_sign() --&gt; 01:00:00</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>static boost::date_time::time_resolutions resolution()</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Describes the resolution capability of the time_duration class. time_resolutions is an enum of resolution possibilities ranging from seconds to nanoseconds.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration::resolution() --&gt; nano</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>static time_duration::num_fractional_digits()</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Returns an unsigned short holding the number of fractional digits the time resolution has.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration::num_fractional_digits(); // 9 for nano, 6 for micro, etc.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>boost::int64_t ticks()</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return the raw count of the duration type.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>time_duration td(0,0,0, 1000); td.ticks() --&gt; 1000</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>static time_duration unit()</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return smallest possible unit of duration type (1 nanosecond).</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>time_duration::unit() --&gt; time_duration(0,0,0,1)</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="time_duration_to_string"/><fo:block id="id436617"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Conversion To String</fo:marker><fo:block font-size="14.4pt">Conversion To String</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id436623" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>std::string to_simple_string(time_duration)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>To HH:MM:SS.fffffffff were fff is fractional seconds that are only included if non-zero.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>10:00:01.123456789</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>std::string to_iso_string(time_duration)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Convert to form HHMMSS,fffffffff.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>100001,123456789</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="time_duration_operators"/><fo:block id="id436670"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Operators</fo:marker><fo:block font-size="14.4pt">Operators</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id436677" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>
	      operator==, operator!=,
	      operator&gt;, operator&lt;
	      operator&gt;=, operator&lt;=
	    </fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>A full complement of comparison operators</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>dd1 == dd2, etc</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_duration operator+(time_duration) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Add durations.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      time_duration td1(hours(1)+minutes(2));
	      time_duration td2(seconds(10));
	      time_duration td3 = td1 + td2;
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_duration operator-(time_duration) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Subtract durations.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      time_duration td1(hours(1)+nanosec(2));
	      time_duration td2 = td1 - minutes(1);
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_duration operator/(int) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Divide the length of a duration by an integer value. Discards any remainder.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      hours(3)/2 == time_duration(1,30,0);
	      nanosec(3)/2 == nanosec(1)
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_duration operator*(int) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Multiply the length of a duration by an integer value.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>hours(3)*2 == hours(6);</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block><fo:block id="date_time.posix_time.time_period"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Time Period</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:basic-link internal-destination="time_period_intro">Introduction</fo:basic-link> --
  <fo:basic-link internal-destination="time_period_header">Header</fo:basic-link> --
  <fo:basic-link internal-destination="time_period_constr">Construction</fo:basic-link> --
  <fo:basic-link internal-destination="time_period_accessors">Accessors</fo:basic-link> --
  <fo:basic-link internal-destination="time_period_to_string">Conversion To String</fo:basic-link> --
  <fo:basic-link internal-destination="time_period_operators">Operators</fo:basic-link><fo:wrapper id="time_period_intro"/><fo:block id="id436837"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The class boost::posix_time::time_period provides direct representation for ranges between two times. Periods provide the ability to simplify some types of calculations by simplifying the conditional logic of the program. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The <fo:basic-link internal-destination="date_time.examples.time_periods">time periods example</fo:basic-link> provides an example of using time periods. 
  </fo:block><fo:wrapper id="time_period_header"/><fo:block id="id436867"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Header</fo:marker><fo:block font-size="14.4pt">Header</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id436873" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      #include "boost/date_time/posix_time/posix_time.hpp" //include all types plus i/o
      or
      #include "boost/date_time/posix_time/posix_time_types.hpp" //no i/o just types
    </fo:block></fo:block><fo:wrapper id="time_period_constr"/><fo:block id="id436887"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Construction</fo:marker><fo:block font-size="14.4pt">Construction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id436893" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_period(ptime begin, ptime end)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Create a period as [begin, end). If last is &lt;= begin then the period will be defined as null.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      date d(2002,Jan,01);
	      ptime t(d, seconds(10)); //10 sec after midnight
	      time_period tp(t, hours(3));
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_period(ptime start, time_duration len)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Create a period as [begin, begin+len). If len is &lt;= zero then the period will be defined as null.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      date d(2002,Jan,01);
	      ptime t1(d, seconds(10)); //10 sec after midnight
	      ptime t2(d, hours(10)); //10 hours after midnight
	      time_period tp(t1, t2);
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_period(time_period rhs)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Copy constructor</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>time_period tp1(tp)</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="time_period_accessors"/><fo:block id="id436957"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Accessors</fo:marker><fo:block font-size="14.4pt">Accessors</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id436964" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime begin() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return first time of period.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      date d(2002,Jan,01);
	      ptime t1(d, seconds(10)); //10 sec after midnight
	      ptime t2(d, hours(10)); //10 hours after midnight
	      time_period tp(t1, t2); tp.begin() --&gt; 2002-Jan-01 00:00:10
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime last() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return last time in the period</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      date d(2002,Jan,01);
	      ptime t1(d, seconds(10)); //10 sec after midnight
	      ptime t2(d, hours(10)); //10 hours after midnight
	      time_period tp(t1, t2); tp.last() --&gt; 2002-Jan-01 09:59:59.999999999
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime end() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> Return one past the last in period</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      date d(2002,Jan,01);
	      ptime t1(d, seconds(10)); //10 sec after midnight
	      ptime t2(d, hours(10)); //10 hours after midnight
	      time_period tp(t1, t2); tp.last() --&gt; 2002-Jan-01 10:00:00
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_duration length() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Return the length of the time period.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      date d(2002,Jan,01);
	      ptime t1(d); //midnight
	      time_period tp(t1, hours(1));
	      tp.length() --&gt; 1 hour
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool is_null() const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>True if period is not well formed. eg: start less than end</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool contains(ptime) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>True if ptime is within the period</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      date d(2002,Jan,01);
	      ptime t1(d, seconds(10)); //10 sec after midnight
	      ptime t2(d, hours(10)); //10 hours after midnight
	      ptime t3(d, hours(2)); //2 hours after midnight
	      time_period tp(t1, t2); tp.contains(t3) --&gt; true
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool contains(time_period) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>True if period is within the period</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      time_period tp1(ptime(d,hours(1)), ptime(d,hours(12)));
	      time_period tp2(ptime(d,hours(2)), ptime(d,hours(4)));
	      tp1.contains(tp2) --&gt; true
	      tp2.contains(tp1) --&gt; false
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>bool intersects(time_period) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block> True if periods overlap</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      time_period tp1(ptime(d,hours(1)), ptime(d,hours(12)));
	      time_period tp2(ptime(d,hours(2)), ptime(d,hours(4)));
	      tp2.intersects(tp1) --&gt; true
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_period intersection(time_period) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Calculate the intersection of 2 periods. Null if no intersection.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_period merge(time_period) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Returns union of two periods. Null if no intersection.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_period span(time_period) const</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Combines two periods and any gap between them such that start = min(p1.start, p2.start) and end = max(p1.end , p2.end).</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_period shift(date_duration)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Add duration to both start and end.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="time_period_to_string"/><fo:block id="id437146"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Conversion To String</fo:marker><fo:block font-size="14.4pt">Conversion To String</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id437152" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>std::string to_simple_string(time_period dp)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>To [YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff] string where mmm is 3 char month name.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>[2002-Jan-01 01:25:10.000000001/2002-Jan-31 01:25:10.123456789]</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="time_period_operators"/><fo:block id="id437189"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Operators</fo:marker><fo:block font-size="14.4pt">Operators</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id437195" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>operator&lt;&lt;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Output streaming operator for time duration. Uses facet to output [date time_of_day/date time_of_day]. The default is format is [YYYY-mmm-DD hh:mm:ss.fffffffff/YYYY-mmm-DD hh:mm:ss.fffffffff] string where mmm is 3 char month name.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>[2002-Jan-01 01:25:10.000000001/2002-Jan-31 01:25:10.123456789]</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>operator==, operator!=</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Equality operators. Periods are equal if p1.begin == p2.begin &amp;&amp; p1.last == p2.last</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>if (tp1 == tp2) {...</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>operator&lt;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Ordering with no overlap. True if tp1.end() less than tp2.begin()</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>if (tp1 &lt; tp2) {...</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>operator&gt;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Ordering with no overlap. True if tp1.begin() greater than tp2.end()</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>if (tp1 &gt; tp2) {... etc</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>operator&lt;=, operator&gt;=</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Defined in terms of the other operators.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block><fo:block id="date_time.posix_time.time_iterators"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Time Iterators</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:basic-link internal-destination="time_iter_intro">Introduction</fo:basic-link> --
  <fo:basic-link internal-destination="time_iter_header">Header</fo:basic-link> --
  <fo:basic-link internal-destination="time_iter_overview">Overview</fo:basic-link> --
  <fo:basic-link internal-destination="time_iter_operators">Operators</fo:basic-link><fo:wrapper id="time_iter_intro"/><fo:block id="id437333"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Time iterators provide a mechanism for iteration through times. Time iterators are similar to <fo:basic-link external-destination="http://www.sgi.com/tech/stl/BidirectionalIterator.html">Bidirectional Iterators</fo:basic-link>. However, time_iterators are different than standard iterators in that there is no underlying sequence, just a calculation function. In addition, time_iterators are directly comparable against instances of <fo:basic-link internal-destination="date_time.posix_time.ptime_class">class ptime</fo:basic-link>. Thus a second iterator for the end point of the iteration is not required, but rather a point in time can be used directly. For example, the following code iterates using a 15 minute iteration interval. The <fo:basic-link internal-destination="date_time.examples.print_hours">print hours</fo:basic-link> example also illustrates the use of the time_iterator. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id437379" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      
	#include "boost/date_time/posix_time/posix_time.hpp"
	#include &lt;iostream&gt;


	int
	main()
	{
	  using namespace boost::gregorian;
	  using namespace boost::posix_time;
	  date d(2000,Jan,20);
	  ptime start(d);
	  ptime end = start + hours(1);
	  time_iterator titr(start,minutes(15)); //increment by 15 minutes
	  //produces 00:00:00, 00:15:00, 00:30:00, 00:45:00
	  while (titr &lt; end) {
	    std::cout &lt;&lt; to_simple_string(*titr) &lt;&lt; std::endl;
	    ++titr;
	  }
	  std::cout &lt;&lt; "Now backward" &lt;&lt; std::endl;
	  //produces 01:00:00, 00:45:00, 00:30:00, 00:15:00
	  while (titr &gt; start) {
	    std::cout &lt;&lt; to_simple_string(*titr) &lt;&lt; std::endl;
	    --titr;
	  }
	}
      
    </fo:block></fo:block><fo:wrapper id="time_iter_header"/><fo:block id="id437405"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Header</fo:marker><fo:block font-size="14.4pt">Header</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id437411" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      #include "boost/date_time/posix_time/posix_time.hpp" //include all types plus i/o
      or
      #include "boost/date_time/posix_time/posix_time_types.hpp" //no i/o just types
    </fo:block></fo:block><fo:wrapper id="time_iter_overview"/><fo:block id="id437425"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Overview</fo:marker><fo:block font-size="14.4pt">Overview</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id437431" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Class</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Construction Parameters</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>time_iterator</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ptime start_time, time_duration increment</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Iterate incrementing by the specified duration.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:wrapper id="time_iter_operators"/><fo:block id="id437467"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Operators</fo:marker><fo:block font-size="14.4pt">Operators</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id437473" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>
	      operator==(const ptime&amp; rhs),
	      operator!=(const ptime&amp; rhs),
	      operator&gt;, operator&lt;
	      operator&gt;=, operator&lt;=
	    </fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>A full complement of comparison operators</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      date d(2002,Jan,1);
	      ptime start_time(d, hours(1));
	      //increment by 10 minutes
	      time_iterator titr(start_time, minutes(10));
	      ptime end_time = start_time + hours(2);
	      if (titr == end_time) // false
	      if (titr != end_time) // true
	      if (titr &gt;= end_time) // false
	      if (titr &lt;= end_time) // true
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>prefix increment</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Increment the iterator by the specified duration.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      //increment by 10 milli seconds
	      time_iterator titr(start_time, milliseconds(10));
	      ++titr; // == start_time + 10 milliseconds
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>prefix decrement</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Decrement the iterator by the specified time duration.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Example time_iterator titr(start_time, time_duration(1,2,3));
--titr; // == start_time - 1 hour, 2 minutes, and 3 seconds</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block><fo:block id="date_time.posix_time.local_time_adjust"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Local Time Adjustment</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:basic-link internal-destination="local_utc_intro">Introduction</fo:basic-link> --
  <fo:basic-link internal-destination="local_utc_header">Header</fo:basic-link> --
  <fo:basic-link internal-destination="local_utc_overview">Overview</fo:basic-link><fo:wrapper id="local_utc_intro"/><fo:block id="id437590"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    A frequent problem in time representation is the conversion between various local time systems. In general this is accomplished by using a reference time system. The reference time system is typically UTC. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Since the posix_time system does no internal time adjustment it can be used to represent both local times and UTC times. However, the user is currently left to handle conversions and time zone knowledge explicitly. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The library offers two different ways to perform UTC to local conversions. The first is using the time zone settings of the computer. This is a useful solution for converting a UTC time for a user machine. This approach depends on the ctime API and will provide incorrect results if the environment is set incorrectly. The other approach allows conversion from any zone to UTC and back independent of the settings of the time zone settings of the computer. The <fo:basic-link internal-destination="date_time.examples.local_utc_conversion">local utc conversion example</fo:basic-link> demonstrates both of these techniques. 
  </fo:block><fo:wrapper id="local_utc_header"/><fo:block id="id437633"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Header</fo:marker><fo:block font-size="14.4pt">Header</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id437640" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      #include "boost/date_time/gregorian/gregorian.hpp" //include all types plus i/o
      or
      #include "boost/date_time/gregorian/gregorian_types.hpp" //no i/o just types
    </fo:block></fo:block><fo:wrapper id="local_utc_overview"/><fo:block id="id437653"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Overview</fo:marker><fo:block font-size="14.4pt">Overview</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id437660" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Class</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Example</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_time::c_local_adjustor&lt;ptime&gt;::utc_to_local(ptime)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Calculate local machine time from a UTC time based on time zone settings and the C API.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	      typedef boost::date_time::c_local_adjustor&lt;ptime&gt; local_adj;
	      ptime t10(date(2002,Jan,1), hours(7));
	      ptime t11 = local_adj::utc_to_local(t10);
	    </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_time::local_adjustor&lt;ptime, utc_offset, dst_rules&gt;::utc_to_local(ptime)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Calculate local machine time from a UTC time based daylight savings rules and utc offset</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:basic-link internal-destination="date_time.examples.local_utc_conversion">example</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>date_time::local_adjustor&lt;ptime, utc_offset, dst_rules&gt;::local_to_utc(ptime)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Calculate UTC time based on daylight savings rules and utc offset.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:basic-link internal-destination="date_time.examples.local_utc_conversion">example</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block><fo:block id="date_time.details"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Details</fo:marker><fo:block font-size="17.28pt">Details</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="date_time.calculations"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Calculations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="timepoints">Timepoints</fo:basic-link> -- 
    <fo:basic-link internal-destination="durations">Durations</fo:basic-link> -- 
    <fo:basic-link internal-destination="intervals">Intervals (Periods)</fo:basic-link> -- 
    <fo:basic-link internal-destination="special_value_handling">Special Value Handling</fo:basic-link></fo:block><fo:wrapper id="timepoints"/><fo:block id="id437808"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Timepoints</fo:marker><fo:block font-size="14.4pt">Timepoints</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    This section describes some of basic arithmetic rules that can be performed with timepoints. In general, Timepoints support basic arithmetic in conjunction with Durations as follows:
    <fo:block id="id437815" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      Timepoint + Duration  --&gt; Timepoint
      Timepoint - Duration  --&gt; Timepoint
      Timepoint - Timepoint --&gt; Duration
    </fo:block>
    Unlike regular numeric types, the following operations are undefined:
    <fo:block id="id437826" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      Duration + Timepoint  --&gt; Undefined
      Duration - Timepoint  --&gt; Undefined
      Timepoint + Timepoint --&gt; Undefined
    </fo:block></fo:block><fo:wrapper id="durations"/><fo:block id="id437841"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Durations</fo:marker><fo:block font-size="14.4pt">Durations</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Durations represent a length of time and can have positive and negative values. It is frequently useful to be able to perform calculations with other durations and with simple integral values. The following describes these calculations:
    <fo:block id="id437852" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      Duration + Duration  --&gt; Duration
      Duration - Duration  --&gt; Duration
      
      Duration * Integer   --&gt; Duration
      Integer  * Duration  --&gt; Duration
      Duration / Integer   --&gt; Duration  (Integer Division rules)
    </fo:block></fo:block><fo:wrapper id="intervals"/><fo:block id="id437867"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Intervals (Periods)</fo:marker><fo:block font-size="14.4pt">Intervals (Periods)</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Interval logic is extremely useful for simplifying many 'calculations' for dates and times. The following describes the operations provided by periods which are based on half-open range. The following operations calculate new time periods based on two input time periods: 
    <fo:block id="id437880" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      Timeperiod intersection Timeperiod --&gt; Timeperiod (null interval if no intersection)
      Timeperiod merge Timeperiod        --&gt; Timeperiod (null interval if no intersection)
      Timeperiod shift Duration          --&gt; Timeperiod (shift start and end by duration amount)
    </fo:block>
    In addition, periods support various queries that calculate boolean results. The first set is caluculations with other time periods:
    <fo:block id="id437894" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      Timeperiod == Timeperiod           --&gt; bool
      Timeperiod &lt; Timeperiod            --&gt; bool (true if lhs.last &lt;= rhs.begin)
      Timeperiod intersects Timeperiod   --&gt; bool
      Timeperiod contains Timeperiod     --&gt; bool
      Timeperiod is_adjacent Timeperiod  --&gt; bool 
    </fo:block>
    The following calculations are performed versus the Timepoint.
    <fo:block id="id437911" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      Timeperiod contains Timepoint      --&gt; bool
      Timeperiod is_before Timepoint     --&gt; bool
      Timeperiod is_after Timepoint      --&gt; bool 
    </fo:block></fo:block><fo:wrapper id="special_value_handling"/><fo:block id="id437928"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Special Value Handling</fo:marker><fo:block font-size="14.4pt">Special Value Handling</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    For many temporal problems it is useful for Duration and Timepoint types to support special values such as Not A Date Time (NADT) and infinity. In general special values such as Not A Date Time (NADT) and infinity should follow rules like floating point values. Note that it should be possible to configure NADT based systems to throw an exception instead of result in NADT. 
    <fo:block id="id437942" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      Timepoint(NADT) + Duration --&gt; Timepoint(NADT)
      Timepoint(&#x221E;) + Duration    --&gt; Timepoint(&#x221E;)
      Timepoint + Duration(&#x221E;)    --&gt; Timepoint(&#x221E;)
      Timepoint - Duration(&#x221E;)    --&gt; Timepoint(-&#x221E;)
    </fo:block>
    When performing operations on both positive and negative infinities, the library will produce results consistent with the following. 
    <fo:block id="id437958" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      Timepoint(+&#x221E;) + Duration(-&#x221E;) --&gt; NADT
      Duration(+&#x221E;) + Duration(-&#x221E;)  --&gt; NADT
      Duration(&#xB1;&#x221E;) * Zero          --&gt; NADT
      
      Duration(&#x221E;) * Integer(Not Zero) --&gt; Duration(&#x221E;)
      Duration(+&#x221E;) * -Integer         --&gt; Duration(-&#x221E;)
      Duration(&#x221E;) / Integer           --&gt; Duration(&#x221E;)
    </fo:block></fo:block></fo:block><fo:block id="date_time.design_goals"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Design Goals</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id437986" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Category</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Functions</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Interfaces</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Provide concrete classes for manipulation of dates and times</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:list-block id="id438014" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438017" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
		date, time, date_duration, time_duration, date_period, time_period, etc 
	      </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438021" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
		support for infinity - positive infinity, negative infinity 
	      </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438025" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
		iterators over time and date ranges 
	      </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438028" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
		allow date and time implementations to be separate as much as possible
	      </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Calculation</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Provide a basis for performing efficient time calculations </fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:list-block id="id438041" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438045" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>days between dates </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438047" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>durations of times </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438050" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>durations of dates and times together </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Representation Flexibility</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Provide the maximum possible reusability and flexibility</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:list-block id="id438062" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438066" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
		traits based customization of internal
	        representations for size versus resolution control
	      </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438070" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
		Allowing the use of different epochs and resolution
	        (eg: seconds versus microseconds, dates starting at the 
	        year 2000 versus dates starting in 1700)
	      </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438076" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
		Options for configuring unique calendar representations 
		(Gregorian + others)
	      </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438080" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
		the use of Julian Day number and the conversion between 
		this and the Gregorian/Julian calendar date
	      </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438084" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Allow for flexible adjustments including 
		leap seconds
	      </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Date Calculations</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Provide tools for date calculations</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:list-block id="id438097" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438100" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>provide basis for calculation of complex event specs like holidays</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438104" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>calendar to calendar conversions</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438107" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>provide for ability to extend to new calendar systems</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Time Calculations</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Provide concrete classes for manipulation of time</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:list-block id="id438120" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438123" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>provide the ability to handle cross time-zone issues</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438127" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>provide adjustments for daylight savings time (summer time)</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Clock Interfaces</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Provide classes for retrieving time current time</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:list-block id="id438139" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438143" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>access to a network / high resolution time sources </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438146" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>retrieving the current date time information to populate classes </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>I/O Interfaces</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Provide input and output for time including</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:list-block id="id438158" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438162" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>multi-lingual support </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438165" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>provide ISO8601 compliant time facet </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438168" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>use I/O facets for different local behavior </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="date_time.tradeoffs"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Tradeoffs: Stability, Predictability, and Approximations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id438184"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
    Unavoidable Trade-offs
  </fo:marker><fo:block font-size="17.28pt">
    Unavoidable Trade-offs
  </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The library does its best to provide everything a user could want, but there are certain inherent constraints that limit what <fo:inline font-style="italic">any</fo:inline> temporal library can do. Specifically, a user must choose which two of the following three capabilities are desired in any particular application:
    <fo:list-block id="id438201" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438204" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>exact agreement with wall-clock time</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438207" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>accurate math, e.g. duration calculations</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438211" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>ability to handle timepoints in the future</fo:block></fo:list-item-body></fo:list-item></fo:list-block>
    Some libraries may implicitly promise to deliver all three, but if you actually put them to the test, only two can be true at once. This limitation is not a deficiency in the design or implementation of any particular library; rather it is a consequence of the way different time systems are defined by international standards. Let's look at each of the three cases:
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    If you want exact agreement with wall-clock time, you must use either UTC or local time. If you compute a duration by subtracting one UTC time from another and you want an answer accurate to the second, the two times must not be too far in the future because leap seconds affect the count but are only determined about 6 months in advance. With local times a future duration calculation could be off by an entire hour, since legislatures can and do change DST rules at will. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    If you want to handle wall-clock times in the future, you won't be able (in the general case) to calculate exact durations, for the same reasons described above. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    If you want accurate calculations with future times, you will have to use TAI or an equivalent, but the mapping from TAI to UTC or local time depends on leap seconds, so you will not have exact agreement with wall-clock time. 
  </fo:block><fo:block id="id438244"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
    Stability, Predictability, and Approximations
  </fo:marker><fo:block font-size="17.28pt">
    Stability, Predictability, and Approximations
  </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Here is some underlying theory that helps to explain what's going on. Remember that a temporal type, like any abstract data type (ADT), is a set of values together with operations on those values. 
  </fo:block><fo:block id="id438253"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
    Stability
  </fo:marker><fo:block font-size="14.4pt">
    Stability
  </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The representation of a type is <fo:inline font-style="italic">stable</fo:inline> if the bit pattern associated with a given value does not change over time. A type with an unstable representation is unlikely to be of much use to anyone, so we will insist that any temporal library use only stable representations. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    An operation on a type is stable if the result of applying the operation to a particular operand(s) does not change over time. 
  </fo:block><fo:block id="id438273"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
    Predictability
  </fo:marker><fo:block font-size="14.4pt">
    Predictability
  </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Sets are most often classified into two categories: well-defined and ill-defined. Since a type is a set, we can extend these definitions to cover types. For any type T, there must be a predicate <fo:inline font-style="italic">is_member( x )</fo:inline> which determines whether a value x is a member of type T. This predicate must return <fo:inline font-style="italic">true, false,</fo:inline> or <fo:inline font-style="italic">dont_know</fo:inline>. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    If for all x, is_member( x ) returns either true or false, we say the set T is <fo:inline font-style="italic">well-defined</fo:inline>. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    If for any x, is_member( x ) returns dont_know, we say the set T is <fo:inline font-style="italic">ill-defined</fo:inline>. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Those are the rules normally used in math. However, because of the special characteristics of temporal types, it is useful to refine this view and create a third category as follows: 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    For any temporal type T, there must be a predicate <fo:inline font-style="italic">is_member( x, t )</fo:inline> which determines whether a value x is a member of T. The parameter t represents the time when the predicate is evaluated. For each x<fo:inline font-size="75%" vertical-align="sub">i</fo:inline>, there must be a time t<fo:inline font-size="75%" vertical-align="sub">i</fo:inline> and a value v such that: 
    <fo:list-block id="id438340" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438343" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>v = true or v = false, and</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438346" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>for all t &lt; t<fo:inline font-size="75%" vertical-align="sub">i</fo:inline>, is_member( x<fo:inline font-size="75%" vertical-align="sub">i</fo:inline>, t ) returns dont_know, and</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438358" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>for all t &gt;= t<fo:inline font-size="75%" vertical-align="sub">i</fo:inline>, is_member( x<fo:inline font-size="75%" vertical-align="sub">i</fo:inline>, t ) returns v.</fo:block></fo:list-item-body></fo:list-item></fo:list-block>
    t<fo:inline font-size="75%" vertical-align="sub">i</fo:inline> is thus the time when we "find out" whether x<fo:inline font-size="75%" vertical-align="sub">i</fo:inline> is a member of T. Now we can define three categories of temporal types:
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    If for all x<fo:inline font-size="75%" vertical-align="sub">i</fo:inline>, t<fo:inline font-size="75%" vertical-align="sub">i</fo:inline> = negative infinity, we say the type T is <fo:inline font-style="italic">predictable</fo:inline>. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    If for some x<fo:inline font-size="75%" vertical-align="sub">i</fo:inline>, t<fo:inline font-size="75%" vertical-align="sub">i</fo:inline> = positive infinity, we say the type T is <fo:inline font-style="italic">ill-formed</fo:inline>. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Otherwise we say the type T is <fo:inline font-style="italic">unpredictable</fo:inline> (this implies that for some x<fo:inline font-size="75%" vertical-align="sub">i</fo:inline>, t<fo:inline font-size="75%" vertical-align="sub">i</fo:inline> is finite). 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Ill-formed sets are not of much practical use, so we will not discuss them further. In plain english the above simply says that all the values of a predictable type are known ahead of time, but some values of an unpredictable type are not known until some particular time. 
  </fo:block><fo:block id="id438433"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
    Stability of Operations
  </fo:marker><fo:block font-size="14.4pt">
    Stability of Operations
  </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Predictable types have a couple of important properties: 
    <fo:list-block id="id438442" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438446" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>there is an order-preserving mapping from their elements onto a set of consecutive integers, and</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438450" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>duration operations on their values are stable</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The practical effect of this is that duration calculations can be implemented with simple integer subtraction. Examples of predictable types are TAI timepoints and Gregorian dates.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Unpredictable types have exactly the opposite properties: 
    <fo:list-block id="id438463" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438467" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>there is no order-preserving mapping from their elements onto a set of consecutive integers, and</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438471" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>duration operations on their values are not stable. </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Examples of unpredictable types are UTC timepoints and Local Time timepoints.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    We can refine this a little by saying that a range within an unpredicatable type can be predictable, and operations performed entirely on values within that range will be stable. For example, the range of UTC timepoints from 1970-01-01 through the present is predictable, so calculations of durations within that range will be stable. 
  </fo:block><fo:block id="id438487"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
    Approximations
  </fo:marker><fo:block font-size="14.4pt">
    Approximations
  </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    These limitations are problematical, because important temporal types like UTC and Local Time are in fact unpredictable, and therefore operations on them are sometimes unstable. Yet as a practical matter we often want to perform this kind of operation, such as computing the duration between two timepoints in the future that are specified in Local Time. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The best the library can do is to provide an approximation, which is generally possible and for most purposes will be good enough. Of course the documentation must specify when an answer will be approximate (and thus unstable) and how big the error may be. In many respects calculating with unpredictable sets is analogous to the use of floating point numbers, for which results are expected to only be approximately correct. Calculating with predictable sets would then be analogous to the user of integers, where results are expected to be exact. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    For situations where exact answers are required or instability cannot be tolerated, the user must be able to specify this, and then the library should throw an exception if the user requests a computation for which an exact, stable answer is not possible. 
  </fo:block></fo:block><fo:block id="date_time.serialization"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Serialization</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The boost::date_time library is compatible with the boost::serialization library's text and xml archives. The list of classes that are serializable are:
  </fo:block><fo:block id="id438537"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">boost::gregorian</fo:marker><fo:block font-size="14.4pt">boost::gregorian</fo:block></fo:block></fo:block><fo:block id="id438542" span="all"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_class">date</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_duration">date_duration</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_period">date_period</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_algorithms">partial_date</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_algorithms">nth_day_of_week_in_month</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_algorithms">first_day_of_week_in_month</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_algorithms">last_day_of_week_in_month</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_algorithms">first_day_of_week_before</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:basic-link internal-destination="date_time.gregorian.date_algorithms">first_day_of_week_after</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_month</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>greg_day</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>greg_weekday</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block id="id438646"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">boost::posix_time</fo:marker><fo:block font-size="14.4pt">boost::posix_time</fo:block></fo:block></fo:block><fo:block id="id438652" span="all"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.posix_time.ptime_class">ptime</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="date_time.posix_time.time_duration">time_duration</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:basic-link internal-destination="date_time.posix_time.time_period">time_period</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    No extra steps are required to build the date_time library for serialization use.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Example text_archive usage:
    <fo:block id="id438699" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      using namespace boost::posix_time;
      using namespace boost::gregorian;
      ptime pt(date(2002, Feb, 14)), hours(10)), pt2(not_a_date_time);
      std::ofstream ofs("tmp_file");
      archive::test_oarchive oa(ofs);
      oa &lt;&lt; pt;                        // NOTE: no macro
      ofs.close();
      std::ifstream ifs("tmp_file");
      archive::text_iarchive ia(ifs);
      ia &gt;&gt; pt2;                       // NOTE: no macro
      ifs.close();
      pt == pt2; // true</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Example xml_archive usage:
    <fo:block id="id438726" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      using namespace boost::gregorian;
      date d(2002, Feb, 14), d2(not_a_date_time);
      std::ofstream ofs("tmp_file");
      archive::xml_oarchive oa(ofs);
      oa &lt;&lt; BOOST_SERIALIZATION_NVP(d); // macro required for xml_archive
      ofs.close();
      std::ifstream ifs("tmp_file");
      archive::xml_iarchive ia(ifs);
      ia &gt;&gt; BOOST_SERIALIZATION_NVP(d2); // macro required for xml_archive
      ifs.close();
      d == d2; // true</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    To use the date_time serialization code, the proper header files must be explicitly included. The header files are:
    <fo:block id="id438751" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      boost/date_time/gregorian/greg_serialize.hpp</fo:block>
    and
    <fo:block id="id438759" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      boost/date_time/posix_time/time_serialize.hpp</fo:block></fo:block></fo:block><fo:block id="date_time.terminology"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Terminology</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The following are a number of terms relevant to the date-time domain. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    A taxonomy of temporal types:
    <fo:list-block id="id438784" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438788" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Timepoint -- Specifier for a location in the time continuum. Similar to a number on a ruler.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438792" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Timelength -- A duration of time unattached to any point on the time continuum.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438796" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Timeinterval -- A duration of time attached to a specific point in the time continuum.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    And some other terms: 
    <fo:list-block id="id438803" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438807" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Accuracy -- A measure of error, the difference between the reading of a clock and the true time.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438811" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Calendar System -- A system for labeling time points with day level resolution.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438815" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Clock Device -- A software component (tied to some hardware) that provides the current date or time with respect to a calendar or clock system.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438820" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Precision -- A measure of repeatability of a clock.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438823" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Resolution -- A specification of the smallest representable duration (eg: 1 second, 1 century) for a clock/calendar system or temporal type.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438828" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Stability -- The property of a class which says that the underlying representation (implementation) associated with a particular (abstract) value will never change.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438833" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Time System -- A system for labeling time points with higher resolution than day-level. </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Some standard date-time terminology: 
    <fo:list-block id="id438841" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438844" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Epoch -- Starting time point of a calendar or clock system.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438848" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>DST -- Daylight savings time - a local time adjustment made in some regions during the summer to shift the clock time of the daylight hours</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438853" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Time zone -- A region of the earth that provides for a 'local time' defined by DST rules and UT offset.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438857" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>UTC Time -- Coordinated Universal Time - Civil time system as measured at longitude zero. Kept adjusted to earth rotation by use of leap seconds. Also known as Zulu Time. Replaced the similar system known as Greenwich Mean Time. For more see <fo:basic-link external-destination="http://aa.usno.navy.mil/faq/docs/UT.html">http://aa.usno.navy.mil/faq/docs/UT.html</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438868" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>TAI Time -- A high-accuracy monotonic (need better term) time system measured to .1 microsecond resolution by atomic clocks around the world. Not adjusted to earth rotation. For more see <fo:basic-link external-destination="http://www.bipm.fr/enus/5_Scientific/c_time/time_server.html">http://www.bipm.fr/enus/5_Scientific/c_time/time_server.html</fo:basic-link></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Some more experimental ones: 
    <fo:list-block id="id438882" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438885" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Local Time -- A time measured in a specific location of the universe.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438889" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Time Label -- A tuple that either completely or partially specifies a specific date-time with respect to a calendar or clock system. This is the year-month-day representation.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438894" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Adjusting Time Length -- A duration that represents varying physical durations depending on the moment in time. For example, a 1 month duration is typically not a fixed number of days and it depends on the date it is measured from to determine the actual length. </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    These are design sorts of terms: 
    <fo:list-block id="id438905" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438908" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Generation function -- A function that generates a specific set of time points, lengths, or intervals based on one or more parameters. </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="date_time.references"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">References</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id438926" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id438929" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="date_ref">Date References</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438938" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="time_ref">Time References</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438948" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="other_c_libs">Other C/C++ Libraries</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438958" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="java_libs">JAVA Date-Time Libraries</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438967" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="script_libs">Scripting Language Libraries</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438977" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="related">Related Commercial and Fanciful Pages</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id438987" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="resolution">Resolution, Precision, and Accuracy</fo:basic-link></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:wrapper id="date_ref"/><fo:block id="id439002"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Date Calendar References</fo:marker><fo:block font-size="14.4pt">Date Calendar References</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id439008" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id439012" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>ISO 8601 date time standard -- <fo:basic-link external-destination="http://www.cl.cam.ac.uk/~mgk25/iso-time.html">Summary by Markus Kuhn</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439021" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://emr.cs.iit.edu/home/reingold/calendar-book/second-edition/">Calendrical Calculations</fo:basic-link> book by Reingold &amp; Dershowitz</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439031" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www.tondering.dk/claus/calendar.html">Calendar FAQ by Claus T&#xF8;ndering</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439039" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Calendar zone <fo:basic-link external-destination="http://www.calendarzone.com">http://www.calendarzone.com</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439045" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www.w3.org/TR/xmlschema-2/#dateTime">XML schema for date time</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439052" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Will Linden's <fo:basic-link external-destination="http://www.ecben.net/calendar.shtml">Calendar Links</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439061" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www21.brinkster.com/lonwolve/melt/index.htm">XMAS calendar melt</fo:basic-link></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:wrapper id="time_ref"/><fo:block id="id439074"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Time</fo:marker><fo:block font-size="14.4pt">Time</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id439080" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id439084" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Martin Folwer on time patterns
	<fo:list-block id="id439087" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id439091" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www.aw.com/cseng/titles/0-201-89542-0/apsupp/events2-1.html">Recurring Events for Calendars</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439098" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Patterns for things that <fo:basic-link external-destination="http://martinfowler.com/ap2/timeNarrative.html">Change with time</fo:basic-link></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439107" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>US National Institute of Standards and Technology <fo:basic-link external-destination="http://nist.time.gov/exhibits.html">Time Exhibits</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439117" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Network Time Protocol at <fo:basic-link external-destination="http://www.ntp.org/">NTP.org</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439125" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>US Navy <fo:basic-link external-destination="http://tycho.usno.navy.mil/systime.html">Systems of Time</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439134" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www.bipm.fr/enus/5_Scientific/c_time/time_1.html">International Atomic Time</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439141" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://beta.zyprexia.com/docs/pgsql/user/datatype1130.htm">Date-Time type PostgreSQL</fo:basic-link> User Guide </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:wrapper id="other_c_libs"/><fo:block id="id439156"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Other C/C++ Libraries</fo:marker><fo:block font-size="14.4pt">Other C/C++ Libraries</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id439163" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id439166" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www.cplusplus.com/ref/ctime/index.html">ctime C</fo:basic-link> Standard library reference at cplusplus.com</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439175" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www.cl.cam.ac.uk/~mgk25/c-time/">XTime C extension</fo:basic-link> proposal</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439184" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://david.tribble.com/text/c0xcalendar.html#author-info">Another C library extension proposal</fo:basic-link> by David Tribble</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439193" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://cr.yp.to/libtai.html">libTAI</fo:basic-link> is a C based time library</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439202" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www.twinsun.com/tz/tz-link.htm">Time Zone Database</fo:basic-link> C library for managing timezones/places</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439211" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>International Components for Unicode by IBM (open source)
	<fo:list-block id="id439214" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id439218" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://oss.software.ibm.com/icu/userguide/dateCalendar.html">Calendar Class</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439226" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://oss.software.ibm.com/icu/userguide/dateTime.html">Date Time Services</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439233" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://oss.software.ibm.com/icu/userguide/dateTimezone.html">Time Zone Class</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439240" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://oss.software.ibm.com/icu/userguide/formatDateTime.html">Date-Time Formatting</fo:basic-link></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439248" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://ringside.arc.nasa.gov/www/toolkits/julian_13/aareadme.html">Julian Library in C by Mark Showalter -- NASA</fo:basic-link></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:wrapper id="java_libs"/><fo:block id="id439261"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">JAVA Date &amp; Time Library Quick Reference</fo:marker><fo:block font-size="14.4pt">JAVA Date &amp; Time Library Quick Reference</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id439269" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id439273" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://java.sun.com/products/jdk/1.1/docs/api/java.util.Calendar.html#_top_">Calendar class</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439280" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://java.sun.com/products/jdk/1.1/docs/api/java.util.GregorianCalendar.html#_top_">Gregorian calendar</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439288" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://java.sun.com/products/jdk/1.1/docs/api/java.util.Date.html">Date class</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439295" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://java.sun.com/products/jdk/1.1/docs/api/java.sql.Time.html#_top_">sql.time class</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439303" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://java.sun.com/products/jdk/1.1/docs/api/java.text.DateFormatSymbols.html#_top_">Date format symbols</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439311" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://java.sun.com/products/jdk/1.1/docs/api/java.text.DateFormat.html#_top_">Date format</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439318" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://java.sun.com/products/jdk/1.1/docs/api/java.text.SimpleDateFormat.html#_top_">Simple Date Format</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439326" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://java.sun.com/products/jdk/1.1/docs/api/java.util.SimpleTimeZone.html#_top_">Simple Time Zone</fo:basic-link></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:wrapper id="script_libs"/><fo:block id="id439340"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Scripting Language Libraries</fo:marker><fo:block font-size="14.4pt">Scripting Language Libraries</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id439347" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id439350" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>A python date library <fo:basic-link external-destination="http://www.lemburg.com/files/python/mxDateTime.html">MX Date Time</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439359" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Perl date-time
	<fo:list-block id="id439362" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id439366" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://search.cpan.org/Catalog/Data_and_Data_Type/Date">Date-Time packages at CPAN</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439373" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://search.cpan.org/doc/TWEGNER/Date-Calc-4.3-bin56Mac/Calc.pm">Date::Calc</fo:basic-link> at CPAN</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439382" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://search.cpan.org/doc/MORTY/DateConvert-0.16/Convert.pm">Date::Convert</fo:basic-link> calendar conversions at CPAN</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439391" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>A PHP library <fo:basic-link external-destination="http://vlib.activefish.com/docs/vlibDate.html">Vlib Date Library</fo:basic-link></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:wrapper id="related"/><fo:block id="id439406"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Related Commercial and Fanciful Pages</fo:marker><fo:block font-size="14.4pt">Related Commercial and Fanciful Pages</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id439412" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id439416" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www.leapsecond.com/java/gpsclock.htm">Leapsecond.com time</fo:basic-link> page</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439424" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www.worldtimeserver.com">World Time Server / TZ database</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439431" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www.longnow.org/10kclock/clock.htm">10000 year clock</fo:basic-link> at Long Now Foundation</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439440" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="http://www.timezonesforpcs.com">Timezones for PCs</fo:basic-link></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:wrapper id="resolution"/><fo:block id="id439453"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Resolution, Precision, and Accuracy</fo:marker><fo:block font-size="14.4pt">Resolution, Precision, and Accuracy</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id439460" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id439463" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Definitions with pictures from <fo:basic-link external-destination="http://metrologyforum.tm.agilent.com/specs.shtml">Agilent Technologies</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439472" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Another set of pictures from <fo:basic-link external-destination="http://www.teamlabs.com/catalog/performance.asp">Team Labs</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439481" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Definitions from <fo:basic-link external-destination="http://www.solent.ac.uk/hydrography/notes/errorthe/accuracy.htm">Southampton Institute</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439490" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Definitions from <fo:basic-link external-destination="http://www.newport.com/Support/Tutorials/OptoMech/om4a.asp">Newport Corporation</fo:basic-link> in the context of instrumentation</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="date_time.buildinfo"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Build-Compiler Information</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="overview">Overview</fo:basic-link> --
    <fo:basic-link internal-destination="compile_options">Compilation Options</fo:basic-link> --
    <fo:basic-link internal-destination="portability">Compiler/Portability Notes</fo:basic-link> --
    <fo:basic-link internal-destination="dir_structure">Directory Structure</fo:basic-link> --
    <fo:basic-link internal-destination="other_boost_libs">Required Boost Libraries</fo:basic-link></fo:block><fo:wrapper id="overview"/><fo:block id="id439567"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Overview</fo:marker><fo:block font-size="14.4pt">Overview</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The library has several functions that require the creation of a library file. The Jamfile in the build directory will produce a "static" library (libboost_date_time) and a "dynamic/shared" library (boost_date_time) that contains these functions. 
  </fo:block><fo:wrapper id="compile_options"/><fo:block id="id439584"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Compilation Options</fo:marker><fo:block font-size="14.4pt">Compilation Options</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    By default the posix_time system uses a 64 bit integer and a 32 bit integer internally to provide nano-second level resolutions. As an alternative, a single 64 bit integer can be used to provide a microsecond level resolution. This alternative implementation may provide better performance and more compact memory usage for many applications that do not require nano-second resolutions. 
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    To use the alternate resolution (64 bit microsecond) the variable BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG must be defined in the library users project files (ie Makefile, Jamfile, etc). This macro is not used by the Gregorian system and therefore has no effect when building the library.
  </fo:block><fo:wrapper id="portability"/><fo:block id="id439604"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Compiler/Portability Notes</fo:marker><fo:block font-size="14.4pt">Compiler/Portability Notes</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The Boost Date-Time library has been built and tested with many compilers. However, some compilers and standard libraries have issues. While some of these issues can be worked around, others are difficult to work around. The following compilers fully support all aspects of the library:
    <fo:list-block id="id439612" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id439616" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>GCC 3.2-7 on Linux</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439619" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>GCC 2.95.3 with STLport-4.5.3 on Linux</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439622" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>GCC 3.1 (cygwin)</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439625" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>MSVC 7.1 </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    In particular, a lack of support for standard locales limits the ability of the library to support iostream based input output. For these compilers a set of more limited string based input-output is provided. The compilers/standard libraries with this limitation include: 
    <fo:list-block id="id439634" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id439638" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>GCC 2.9x on Linux</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439641" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Borland 5.1.1 and 5.6</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439644" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>MSVC 6 SP5 </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Other compilers such as Comeau and Metroworks have been tested successfully with earlier versions of the library.
  </fo:block><fo:wrapper id="dir_structure"/><fo:block id="id439657"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Directory Structure</fo:marker><fo:block font-size="14.4pt">Directory Structure</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The directory tree has the following structure:
    <fo:block id="id439666" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      /boost/date_time                    -- common headers and template code
      /boost/date_time/gregoran           -- Gregorian calendar system header files
      /boost/date_time/posix_time         -- posix time system headers
      /libs/date_time/build               -- build files and output directory
      /libs/date_time/test                -- test battery for generic code
      /libs/date_time/test/gregorian      -- test battery for the Gregorian system
      /libs/date_time/test/posix_time     -- test battery for the posix_time system
      /libs/date_time/examples/posix_time -- time example programs
      /libs/date_time/examples/gregorian  -- nifty example programs
      /libs/date_time/src/gregorian       -- cpp files for libboost_date_time
      /libs/date_time/src/posix_time      -- empty (one file, but no source code...)
    </fo:block></fo:block><fo:wrapper id="other_boost_libs"/><fo:block id="id439691"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Required Boost Libraries</fo:marker><fo:block font-size="14.4pt">Required Boost Libraries</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The library depends on 
    <fo:list-block id="id439700" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id439703" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="../../libs/tokenizer/index.html">boost.tokenizer</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439710" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="../../libs/integer/cstdint.htm">boost.integer(cstdint)</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439716" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="../../libs/utility/operators.htm">boost.operators</fo:basic-link></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id439723" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link external-destination="../../libs/conversion/lexical_cast.htm">boost::lexical_cast </fo:basic-link></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
    so at least these libraries need to be installed. 
  </fo:block></fo:block><fo:block id="date_time.tests"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Tests</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The library provides a large number of tests in the 
    <fo:block id="id439748" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      libs/date_time/test
      libs/date_time/test/gregorian
      libs/date_time/test/posix_time
    </fo:block>
    directories. Building and executing these tests assures that the installation is correct and that the library is functioning correctly. In addition, these tests facilitate the porting to new compilers. Finally, the tests provide examples of many functions not explicitly described in the usage examples. 
  </fo:block></fo:block><fo:block id="date_time.changes"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Change History</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id439774"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Changes from Boost 1.31 to 1.32 (date_time 1.02 to 1.03)</fo:marker><fo:block font-size="14.4pt">Changes from Boost 1.31 to 1.32 (date_time 1.02 to 1.03)</fo:block></fo:block></fo:block><fo:block id="id439780" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Snap to end of month behavior corrected for year_functor. Previously, starting 
                 from 2000-Feb-28 (leap year and not end of month) and iterating through the next 
                 leap year would result in 2004-Feb-29 instead of 2004-Feb-28. This behavior has 
                 been corrected to produce the correct result of 2004-Feb-28. Thanks to Bart Garst 
                 for this change.
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Free function for creating a ptime object from a FILETIME struct. This function 
                 is only available on platforms that define BOOST_HAS_FTIME.
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Microsecond time clock is now available on most windows compilers as well as
                 Unix.
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Use of the boost::serialization library is now available with most of the 
                 date_time classes. Classes capable of serialization are: date_generator classes, 
                 date, days, date_period, greg_month, greg_weekday, greg_day, ptime, time_duration,
                 and time_period. Thanks to Bart Garst for this change.
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Functions added to convert date and time classes to wstring. The library now 
                 provides to_*_wstring as well as to_*_string functions for: simple, iso, 
                 iso_extended, and sql for dates and compilers that support wstrings. Thanks to 
                 Bart Garst for this change.
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Period classes now handle zero length and NULL periods correctly. A NULL period 
                 is a period with a negative length. Thanks to Frank Wolf and Bart Garst for this 
                 change.
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Added end_of_month function to gregorian::date to return the last day of
                 the current month represented by the date.  Result is undefined for
                 not_a_date_time or infinities.
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Removed incorrect usage of BOOST_NO_CWCHAR macro throughout library.
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>New names added for some date classes. Original names are still valid but may 
                 some day be deprecated. Changes are:
            <fo:table space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" table-layout="fixed" width="100%"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row><fo:table-cell><fo:block>date_duration</fo:block></fo:table-cell><fo:table-cell><fo:block>is now</fo:block></fo:table-cell><fo:table-cell><fo:block>days</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>nth_kday_of_month</fo:block></fo:table-cell><fo:table-cell><fo:block>is now</fo:block></fo:table-cell><fo:table-cell><fo:block>nth_day_of_the_week_in_month</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>first_kday_of_month</fo:block></fo:table-cell><fo:table-cell><fo:block>is now</fo:block></fo:table-cell><fo:table-cell><fo:block>first_day_of_the_week_in_month</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>last_kday_of_month</fo:block></fo:table-cell><fo:table-cell><fo:block>is now</fo:block></fo:table-cell><fo:table-cell><fo:block>last_day_of_the_week_in_month</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>first_kday_after</fo:block></fo:table-cell><fo:table-cell><fo:block>is now</fo:block></fo:table-cell><fo:table-cell><fo:block>first_day_of_the_week_after</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>first_kday_before</fo:block></fo:table-cell><fo:table-cell><fo:block>is now</fo:block></fo:table-cell><fo:table-cell><fo:block>first_day_of_the_week_before</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Free functions for date generators added. Functions are: days_until_weekday, days_before_weekday, next_weekday, and previous_weekday.
            <fo:block id="id439953" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
              days days_until_weekday(date, greg_weekday);
              days days_before_weekday(date, greg_weekday);
              date next_weekday(date, greg_weekday);
              date previous_weekday(date, greg_weekday);</fo:block>
	    Thanks to Bart Garst for this change.
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>New experimental duration types added for months, years, and weeks. These classes 
                 also provide mathematical operators for use with date and time classes.  Be aware
                 that adding of months or years a time or date past the 28th of a month may show 
                 non-normal mathematical properties.  This is a result of 'end-of-month' 
                 snapping used in the calculation.  The last example below illustrates the    
                 issue.  
           
            <fo:block id="id439970" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
              months m(12);
              years y(1);
              m == y; // true
              days d(7);
              weeks w(1);
              d == w; // true
              ptime t(...);
              t += months(3);
              date d(2004,Jan,30);
              d += months(1); //2004-Feb-29
              d -= months(1); //2004-Jan-29
            </fo:block>
            Input  streaming is not yet implemented for these types.              
	    Thanks to Bart Garst for this change.
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Unifying base class for date_generators brought in to gregorian namespace. See <fo:basic-link internal-destination="date_time.examples.print_holidays">Print Holidays Example</fo:basic-link>.
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Added constructors for date and ptime that allow for default construction (both) 
                 and special values construction (ptime, both now support this). Default 
                 constructors initialize the objects to not_a_date_time (NADT).
            <fo:block id="id440014" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
              ptime p_nadt(not_a_date_time), p_posinf(pos_infin);
              ptime p; // p == NADT
              date d;  // d == NADT
            </fo:block>
	    Thanks to Bart Garst for this change.
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Output streaming now supports wide stream output on compiler / standard library combinations that support wide streams. This allows code like:
	    <fo:block id="id440033" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
	      std::wstringstream wss;
	      date d(2003,Aug,21);
	      wss &lt;&lt; d;</fo:block>
	    Thanks to Bart Garst for this change.
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Input streaming for date and time types is now supported on both wide and narrow streams:
	    <fo:block id="id440050" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
	      date d(not_a_date_time);
	      std::stringstream ss("2000-FEB-29");
	      ss &gt;&gt; d; //Feb 29th, 2000
              std::wstringstream ws("2000-FEB-29");
              ws &gt;&gt; d; //Feb 29th, 2000
            </fo:block>
	    Thanks to Bart Garst for this change.
	  </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block> Fixed bug in duration_from_string() where a string formatted with
                  less than full amount of fractional digits created an incorrect
                  time_duration.  With microsecond resolution for time durations
                  the string "1:01:01.010" created a time duration of 
                  01:01:01.000010 instead of 01:01:01.010000
          </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Fixed the special value constructor for gregorian::date and posix_time::ptime 
                 when constructing with min_date_time or max_date_time.  The wrong value was 
                 constructed for these.
          </fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block id="id440089"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Changes from Boost 1.30 to 1.31 (date_time 1.01 to 1.02)</fo:marker><fo:block font-size="14.4pt">Changes from Boost 1.30 to 1.31 (date_time 1.01 to 1.02)</fo:block></fo:block></fo:block><fo:block id="id440095" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Build configuration updated so dll, statically, and dynamically linkable library files are now produced with MSVC compilers. See <fo:basic-link internal-destination="date_time.buildinfo">Build/Compiler Information</fo:basic-link> for more details.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Time_duration from_string is now correctly constructed from a negative value. (ie "-0:39:00.000") Code provided by Bart Garst.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Fixed many MSVC compiler warnings when compiled with warning level 4.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Added prefix decrement operator (--) for date and time iterators. See <fo:basic-link internal-destination="date_time.posix_time.time_iterators">Time Iterators</fo:basic-link>  and <fo:basic-link internal-destination="date_time.gregorian.date_iterators">Date Iterators</fo:basic-link> for more details. Code provided by Bart Garst.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Special_values functionality added for date_duration, time_duration and time classes. Code provided by Bart Garst.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Fixed time_duration_traits calculation bug which was causing time duration to be limited to 32bit range even when 64 bits were available. Thanks to Joe de Guzman for tracking this down.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Provided additional operators for duration types (eg: date_duration, time_duration). This includes dividable by integer and fixes to allow +=, -= operators. Thanks to Bart Garst for writing this code. Also, the documentation of <fo:basic-link internal-destination="date_time.calculations">Calculations</fo:basic-link> has been improved.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Added typedefs to boost::gregorian gregorian_types.hpp various date_generator function classes.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Added from_time_t function to convert time_t to a ptime.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Added a span function for combining periods. See <fo:basic-link internal-destination="date_time.gregorian.date_period">date period</fo:basic-link> and <fo:basic-link internal-destination="date_time.posix_time.time_period">time period</fo:basic-link> docs.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Added a function to time_duration to get the total number of seconds in a 
                 duration truncating any fractional seconds. In addition, other resolutions 
                 were added to allow for easy conversions. For example
	    <fo:block id="id440260" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
               seconds(1).total_milliseconds() == 1000
               seconds(1).total_microseconds() == 1000000
               hours(1).total_milliseconds() == 3600*1000 //3600 sec/hour
               seconds(1).total_nanoseconds() == 1000000000
            </fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Added output streaming operators for the <fo:basic-link internal-destination="date_time.gregorian.date_algorithms">date generator</fo:basic-link> classes - partial_date, first_kday_after, first_kday_before, etc. Thanks to Bart Garst for this work.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Added unary- operators for durations for reversing the sign of a time duration. For example:
	    <fo:block id="id440295" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
	      time_duration td(5,0,0); //5 hours
	      td = -td; //-5 hours</fo:block>
	  Thanks to Bart Garst for this work.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Added support for parsing strings with 'month names'. Thus creating a date object from string now accepts multiple formats ("2003-10-31","2003-Oct-31", and "2003-October-31"). Thus, date d = from_simple_string("2003-Feb-27") is now allowed. A bad month name string ( from_simple_string("2003-SomeBogusMonthName-27")) will cause a bad_month exception. On most compilers the string compare is case insensitive. Thanks to Bart Garst for this work.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>In addition to support for month names or numbers, functions have been added to create date objects from multi-ordered date strings. Ex: "January-21-2002", "2002-Jan-21", and "21-Jan-2003". See <fo:basic-link internal-destination="date_time.gregorian.date">Date Class</fo:basic-link> for more details.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug-Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Various documentation fixes. Thanks to Bart Garst for updates.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block id="id440334"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Changes from Boost 1.29 to 1.30 (date_time 1.00 to 1.01)</fo:marker><fo:block font-size="14.4pt">Changes from Boost 1.29 to 1.30 (date_time 1.00 to 1.01)</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Notice: The interface to the partial_date class (see <fo:basic-link internal-destination="date_time.gregorian.algorithms">date_algorithms</fo:basic-link>) was changed. The order of construction parameters was changed which will cause some code to fail execution. This change was made to facilitate more generic local time adjustment code. Thus instead of specifying partial_date pd(Dec,25) the code needs to be changed to partial_date pd(25, Dec); 
  </fo:block><fo:block id="id440354" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Added new experimental feature for Daylight Savings Time calculations. This allows traits based specification of dst rules.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Added new interfaces to calculate julian day and modified julian day to the gregorian date class. See <fo:basic-link internal-destination="date_time.gregorian.date">boost::gregorian::date</fo:basic-link>.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Add new interface to calculate iso 8601 week number for a date. See <fo:basic-link internal-destination="date_time.gregorian.date">boost::gregorian::date</fo:basic-link>.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Add an iso 8601 time date-time format (eg: YYYYMMDDTHHHMMSS) parsing function. See <fo:basic-link internal-destination="date_time.posix_time.ptime">Class ptime</fo:basic-link> for more information.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Feature</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block> Added a length function to the period template so that both date_periods and time_periods will now support this function.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Split Jamfiles so that libs/date_time/build/Jamfile only builds library and /libs/date_time/libs/test/Jamfile which runs tests.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Fixed many minor documentation issues.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Removed the DATE_TIME_INLINE macro which was causing link errors. This macro is no longer needed in projects using the library.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Added missing typedef for year_iterator to gregorian_types.hpp</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Fixed problem with gregorian ostream operators that prevented the use of wide streams.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Bug-Fix</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Tighten error handling for dates so that date(2002, 2, 29) will throw a bad_day_of_month exception. Previously the date would be incorrectly constructed. Reported by sourceforge bug: 628054 among others.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="date_time.acknowledgements"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Acknowledgements</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Many people have contributed to the development of this library. In particular Hugo Duncan and Joel de Guzman for help with porting to various compilers. For initial development of concepts and design Corwin Joy and Michael Kenniston deserve special thanks. Also extra thanks to Michael for writing up the theory and tradeoffs part of the documentation. Dave Zumbro for initial inspiration and sage thoughts. Many thanks to boost reviewers and users including: William Seymour, Kjell Elster, Beman Dawes, Gary Powell, Andrew Maclean, William Kempf, Peter Dimov, Chris Little, David Moore, Darin Adler, Gennadiy Rozental, Joachim Achtzehnter, Paul Bristow, Jan Langer, Mark Rodgers, Glen Knowles, Matthew Denman, and George Heintzelman. 
  </fo:block></fo:block></fo:block><fo:block id="date_time.examples"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Examples</fo:marker><fo:block font-size="17.28pt">Examples</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="date_time.examples.general_usage_examples"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">General Usage Examples</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The following provides some sample usage of dates.
    See <fo:basic-link internal-destination="date_time.gregorian">Date Programming</fo:basic-link> 
    for more details.

    <fo:block id="id440553" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">    
	 using namespace boost::gregorian; 
	 date weekstart(2002,Feb,1);
	 date weekend  = weekstart + week(1);
	 date d2 = d1 + days(5);
	 date today = day_clock::local_day();
	 if (d2 &gt;= today) {} //date comparison operators
	 
	 date_period thisWeek(d1,d2);
	 if (thisWeek.contains(today)) {}//do something
	
	 //iterate and print the week
	 day_iterator itr(weekstart);
	 while (itr &lt;= weekend) {
	   std::cout &lt;&lt; (*itr) &lt;&lt; std::endl;
           ++itr;
	 }  
         //input streaming
         std::stringstream ss("2004-Jan-1");
         ss &gt;&gt; d3;
        
         //localized i/o using facets
         std::locale global;
         std::locale german(global, 
                            new date_facet(de_short_month_names, 
                                           de_long_month_names,
                                           de_special_value_names,
                                           de_long_weekday_names,
                                           de_long_weekday_names,
                                           '.', 
                                           boost::date_time::ymd_order_dmy));
         std::cout.imbue(global2); 
         date d4(2002, Oct, 1);
         std::cout &lt;&lt; d4; //01.Okt.2002

         //date generator functions
         date d5 = next_weekday(d4, Sunday); //calculate sunday following d4

         //define a shorthand for the nth_day_of_the_week_in_month function object
	 typedef nth_day_of_the_week_in_month nth_dow;
         //US labor day is first Monday in Sept
	 nth_dow labor_day(nth_dow::first,Monday, Sep); 
	 date d6 = labor_day.get_date(2004); //calculate a specific date from functor
    </fo:block>    

      The following provides some example code using times.
      See <fo:basic-link internal-destination="date_time.posix_time">Time Programming</fo:basic-link> 
      for more details.

    <fo:block id="id440571" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">    
	 use namespace boost::posix_time; 
	 date d(2002,Feb,1); //an arbitrary date
	 ptime t1(d, hours(5)+nanosec(100)); //date + time of day offset
	 ptime t2 = t1 - minutes(4)+seconds(2);
	 ptime now = second_clock::local_time(); //use the clock
	 date today = now.date(); //Get the date part out of the time
	 date tommorrow = today + date_duration(1);
	 ptime tommorrow_start(tommorrow); //midnight 

         //input streaming
         std::stringstream ss("2004-Jan-1 05:21:33.20");
         ss &gt;&gt; t2;

	 //starting at current time iterator adds by one hour
	 time_iterator titr(now,hours(1)); 
	 for (; titr &lt; tommorrow_start; ++titr) {
	   std::cout &lt;&lt; (*titr) &lt;&lt; std::endl;
	 }

    </fo:block></fo:block><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block><fo:block id="date_time.examples.dates_as_strings"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Dates as Strings</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  
    Various parsing and output of strings.
  </fo:block><fo:block id="id440676" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    

      /* The following is a simple example that shows conversion of dates 
       * to and from a std::string.
       * 
       * Expected output:
       * 2001-Oct-09
       * 2001-10-09
       * Tuesday October 9, 2001
       * An expected exception is next: 
       * Exception: Month number is out of range 1..12
       */

      #include "boost/date_time/gregorian/gregorian.hpp"
      #include &lt;iostream&gt;
      #include &lt;string&gt;

      int
      main() 
      {

	using namespace boost::gregorian;

	try {
	  // The following date is in ISO 8601 extended format (CCYY-MM-DD)
	  std::string s("2001-10-9"); //2001-October-09
	  date d(from_simple_string(s));
	  std::cout &lt;&lt; to_simple_string(d) &lt;&lt; std::endl;
	  
	  //Read ISO Standard(CCYYMMDD) and output ISO Extended
	  std::string ud("20011009"); //2001-Oct-09
	  date d1(from_undelimited_string(ud));
	  std::cout &lt;&lt; to_iso_extended_string(d1) &lt;&lt; std::endl;
	  
	  //Output the parts of the date - Tuesday October 9, 2001
	  date::ymd_type ymd = d1.year_month_day();
	  greg_weekday wd = d1.day_of_week();
	  std::cout &lt;&lt; wd.as_long_string() &lt;&lt; " "
		    &lt;&lt; ymd.month.as_long_string() &lt;&lt; " "
		    &lt;&lt; ymd.day &lt;&lt; ", " &lt;&lt; ymd.year
		    &lt;&lt; std::endl;

	  //Let's send in month 25 by accident and create an exception
	  std::string bad_date("20012509"); //2001-??-09
	  std::cout &lt;&lt; "An expected exception is next: " &lt;&lt; std::endl;
	  date wont_construct(from_undelimited_string(bad_date));
	  //use wont_construct so compiler doesn't complain, but you wont get here!
	  std::cout &lt;&lt; "oh oh, you shouldn't reach this line: " 
		    &lt;&lt; to_iso_string(wont_construct) &lt;&lt; std::endl;
	}
	catch(std::exception&amp; e) {
	  std::cout &lt;&lt; "  Exception: " &lt;&lt;  e.what() &lt;&lt; std::endl;
	}


	return 0;
      }

    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block><fo:block id="date_time.examples.days_alive"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Days Alive</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> 
    Calculate the number of days you have been living using durations and dates.
  </fo:block><fo:block id="id440738" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    
      /* Short example that calculates the number of days since user was born.
       * Demonstrates comparisons of durations, use of the day_clock,
       * and parsing a date from a string.
       */

      #include "boost/date_time/gregorian/gregorian.hpp"
      #include &lt;iostream&gt;

      int
      main() 
      {
	
	using namespace boost::gregorian;
	std::string s;
	std::cout &lt;&lt; "Enter birth day YYYY-MM-DD (eg: 2002-02-01): ";
	std::cin &gt;&gt; s;
	try {
	  date birthday(from_simple_string(s));
	  date today = day_clock::local_day();
	  days days_alive = today - birthday;
	  days one_day(1);
	  if (days_alive == one_day) {
	    std::cout &lt;&lt; "Born yesterday, very funny" &lt;&lt; std::endl;
	  }
	  else if (days_alive &lt; days(0)) {
	    std::cout &lt;&lt; "Not born yet, hmm: " &lt;&lt; days_alive.days() 
		      &lt;&lt; " days" &lt;&lt;std::endl;
	  }
	  else {
	    std::cout &lt;&lt; "Days alive: " &lt;&lt; days_alive.days() &lt;&lt; std::endl;
	  }

	}
	catch(...) {
	  std::cout &lt;&lt; "Bad date entered: " &lt;&lt; s &lt;&lt; std::endl;
	}
	return 0;
      }
    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block><fo:block id="date_time.examples.days_between_new_year"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Days Between New Years</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  
    Calculate the number of days till new years
  </fo:block><fo:block id="id440792" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    
      /* Provides a simple example of using a date_generator, and simple
       * mathematical operatorations, to calculate the days since 
       * New Years day of this year, and days until next New Years day.
       *
       * Expected results:
       * Adding together both durations will produce 366 (365 in a leap year).
       */
      #include &lt;iostream&gt;
      #include "boost/date_time/gregorian/gregorian.hpp"

      int
      main() 
      {
	
	using namespace boost::gregorian;

	date today = day_clock::local_day();
	partial_date new_years_day(1,Jan);
	//Subtract two dates to get a duration
	days days_since_year_start = today - new_years_day.get_date(today.year());
	std::cout &lt;&lt; "Days since Jan 1: " &lt;&lt; days_since_year_start.days() 
		  &lt;&lt; std::endl;
	
	days days_until_year_start = new_years_day.get_date(today.year()+1) - today;
	std::cout &lt;&lt; "Days until next Jan 1: " &lt;&lt; days_until_year_start.days() 
		  &lt;&lt; std::endl;
	return 0;
      };

    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block><fo:block id="date_time.examples.end_of_month_day"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">End of the Months</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Iterates accross the remaining months in a given year, always landing on the last day of the month.
  </fo:block><fo:block id="id440845" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    
      /* Simple program that uses the gregorian calendar to find the last
       * day of the month and then display the last day of every month left 
       * in the year.
       */

      #include "boost/date_time/gregorian/gregorian.hpp"
      #include &lt;iostream&gt;

      int
      main()
      {
	using namespace boost::gregorian;
	
	std::cout &lt;&lt; "   Enter Year(ex: 2002): ";
	int year, month;
	std::cin &gt;&gt; year;
	std::cout &lt;&lt; "   Enter Month(1..12): ";
	std::cin &gt;&gt; month;
	try {
	  int day = gregorian_calendar::end_of_month_day(year,month);
	  date end_of_month(year,month,day);

	  //Iterate thru by months --
	  month_iterator mitr(end_of_month,1);
	  date start_of_next_year(year+1, Jan, 1);
	  //loop thru the days and print each one
	  while (mitr &lt; start_of_next_year){
	    std::cout &lt;&lt; to_simple_string(*mitr) &lt;&lt; std::endl;
	    ++mitr;
	  }

	}
	catch(...) {
	  std::cout &lt;&lt; "Invalid Date Entered" &lt;&lt; std::endl;
	}
	return 0;

      }

    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block><fo:block id="date_time.examples.localization"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Localization Demonstration</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The boost::date_time library provides the ability to create customized locale facets. Date ordering, language, seperators, and abbreviations can be customized.
  </fo:block><fo:block id="id440911" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    

      /* The following shows the creation of a facet for the output of 
       * dates in German (please forgive me for any errors in my German --
       * I'm not a native speaker).
       */

      #include "boost/date_time/gregorian/gregorian.hpp"
      #include &lt;iostream&gt;

      /* Define a series of char arrays for short and long name strings to be 
       * associated with date output. */
      const char* const de_short_month_names[] = 
      {
	"Jan", "Feb", "Mar", "Apr", "Mai", "Jun",
	"Jul", "Aug", "Sep", "Okt", "Nov", "Dez", "NAM" 
      };
      const char* const de_long_month_names[] =
      {
	"Januar", "Februar", "Marz", "April", "Mai",
	"Juni", "Juli", "August", "September", "Oktober",
	"November", "Dezember", "NichtDerMonat"
      };
      const char* const de_special_value_names[] =
      {
	"NichtDatumzeit", "-unbegrenztheit", "+unbegrenztheit"
      };
      const char* const de_long_weekday_names[] = 
      {
	"Sonntag", "Montag", "Dienstag", "Mittwoch",
	"Donnerstag", "Freitag", "Samstag"
      };
      const char* const de_short_weekday_names[] =
      {
	"Son", "Mon", "Die","Mit", "Don", "Fre", "Sam"
      };

      const char* const us_short_month_names[] = 
      {
	"Jan", "Feb", "Mar", "Apr", "May", "Jun",
	"Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "NAD"
      };
      const char* const us_long_month_names[] =
      {
	"January", "February", "March", "April", "May",
	"June", "July", "August", "September", "October",
	"November", "December", "Not-A-Date"
      };
      const char* const us_special_value_names[] =
      { 
	"Not-A-Date", "-infinity", "+infinity"
      };
      const char* const us_long_weekday_names[] =
      {
	"Sunday", "Monday", "Tuesday", "Wenesday", 
	"Thursday", "Friday", "Saturday"
      };
      const char* const us_short_weekday_names[] =
      {
	"Sun", "Mon", "Tue","Wed", "Thu", "Fri", "Sat"
      };


      int
      main() 
      {

      #ifndef BOOST_DATE_TIME_NO_LOCALE

	using namespace boost::gregorian;
	typedef boost::date_time::all_date_names_put&lt;greg_facet_config&gt; date_facet;
	
	//create a new local
	std::locale default_locale;
	std::locale german_dates1(default_locale, 
				  new date_facet(de_short_month_names, 
						 de_long_month_names,
						 de_special_value_names,
						 de_short_weekday_names,
						 de_long_weekday_names,
						 '.',
						 boost::date_time::ymd_order_dmy,
						 boost::date_time::month_as_integer));
	
	date d1(2002, Oct, 1);
	std::cout.imbue(german_dates1); 
	// output the date in German using short month names
	std::cout &lt;&lt; d1 &lt;&lt; std::endl; //01.10.2002
	
	std::locale german_dates2(default_locale, 
				  new date_facet(de_short_month_names, 
						 de_long_month_names,
						 de_special_value_names,
						 de_short_weekday_names,
						 de_long_weekday_names,
						 '.',
						 boost::date_time::ymd_order_dmy,
						 boost::date_time::month_as_long_string));
	
	std::cout.imbue(german_dates2); 
	greg_month m = d1.month();
	std::cout &lt;&lt; m &lt;&lt; std::endl; //Oktober
	
	greg_weekday wd = d1.day_of_week();
	std::cout &lt;&lt; wd &lt;&lt; std::endl; //Dienstag


	//Numeric date format with US month/day/year ordering
	std::locale usa_dates1(default_locale, 
			       new date_facet(us_short_month_names, 
					      us_long_month_names,
					      us_special_value_names,
					      us_short_weekday_names,
					      us_long_weekday_names,
					      '/',
					      boost::date_time::ymd_order_us,
					      boost::date_time::month_as_integer));
	
	std::cout.imbue(usa_dates1); 
	std::cout &lt;&lt; d1 &lt;&lt; std::endl; //  10/01/2002
	//English names, iso order (year-month-day), '-' separator
	std::locale usa_dates2(default_locale, 
			       new date_facet(us_short_month_names, 
					      us_long_month_names,
					      us_special_value_names,
					      us_short_weekday_names,
					      us_long_weekday_names,
					      '-',
					      boost::date_time::ymd_order_iso,
					      boost::date_time::month_as_short_string));

	std::cout.imbue(usa_dates2); 
	std::cout &lt;&lt; d1 &lt;&lt; std::endl; //  2002-Oct-01
	
	
      #else 
	std::cout &lt;&lt; "Sorry, localization is not supported by this compiler/library" 
		  &lt;&lt; std::endl;
      #endif
	return 0;

      }
    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block><fo:block id="date_time.examples.date_period_calc"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Date Period Calculations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  
    Calculates if a date is in an 'irregular' collection of periods using period calculation functions.
  </fo:block><fo:block id="id441026" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    
      /*
      This example demonstrates a simple use of periods for the calculation
      of date information.

      The example calculates if a given date is a weekend or holiday
      given an exclusion set.  That is, each weekend or holiday is
      entered into the set as a time interval.  Then if a given date
      is contained within any of the intervals it is considered to
      be within the exclusion set and hence is a offtime.

      Output:
      Number Excluded Periods: 5
      20020202/20020203
      20020209/20020210
      20020212/20020212
      20020216/20020217
      In Exclusion Period: 20020216 --&gt; 20020216/20020217
      20020223/20020224

      */


      #include "boost/date_time/gregorian/gregorian.hpp"
      #include &lt;set&gt;
      #include &lt;algorithm&gt;
      #include &lt;iostream&gt;

      typedef std::set&lt;boost::gregorian::date_period&gt; date_period_set;

      //Simple population of the exclusion set
      date_period_set
      generateExclusion()
      {
	using namespace boost::gregorian;
	date_period periods_array[] = 
	  { date_period(date(2002,Feb,2), date(2002,Feb,4)),//weekend of 2nd-3rd
	    date_period(date(2002,Feb,9), date(2002,Feb,11)),
	    date_period(date(2002,Feb,16), date(2002,Feb,18)),
	    date_period(date(2002,Feb,23), date(2002,Feb,25)),
	    date_period(date(2002,Feb,12), date(2002,Feb,13))//a random holiday 2-12
	  };
	const int num_periods = sizeof(periods_array)/sizeof(date_period);

	date_period_set ps;
	//insert the periods in the set
	std::insert_iterator&lt;date_period_set&gt; itr(ps, ps.begin());
	std::copy(periods_array, periods_array+num_periods, itr );
	return ps;
	
      }


      int main() 
      {
	using namespace boost::gregorian;
	
	date_period_set ps = generateExclusion();
	std::cout &lt;&lt; "Number Excluded Periods: "  &lt;&lt; ps.size() &lt;&lt; std::endl;

	date d(2002,Feb,16);
	date_period_set::const_iterator i = ps.begin();
	//print the periods, check for containment
	for (;i != ps.end(); i++) {
	  std::cout &lt;&lt; to_iso_string(*i) &lt;&lt; std::endl;
	  //if date is in exclusion period then print it
	  if (i-&gt;contains(d)) {
	    std::cout &lt;&lt; "In Exclusion Period: "
		&lt;&lt; to_iso_string(d) &lt;&lt; " --&gt; " &lt;&lt; to_iso_string(*i)
		&lt;&lt; std::endl;
	  }
	}

	return 0;  

      }

    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block><fo:block id="date_time.examples.print_holidays"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Print Holidays</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  
    This is an example of using functors to define a holiday schedule
  </fo:block><fo:block id="id441119" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    

      /* Generate a set of dates using a collection of date generators
       * Output looks like:
       * Enter Year: 2002
       * 2002-Jan-01 [Tue]
       * 2002-Jan-21 [Mon]
       * 2002-Feb-12 [Tue]
       * 2002-Jul-04 [Thu]
       * 2002-Sep-02 [Mon]
       * 2002-Nov-28 [Thu]
       * 2002-Dec-25 [Wed]
       * Number Holidays: 7
       */

      #include "boost/date_time/gregorian/gregorian.hpp"
      #include &lt;algorithm&gt;
      #include &lt;functional&gt;
      #include &lt;vector&gt;
      #include &lt;iostream&gt;
      #include &lt;set&gt;

      void
      print_date(boost::gregorian::date d) 
      {
	using namespace boost::gregorian;
      #if defined(BOOST_DATE_TIME_NO_LOCALE)
	std::cout &lt;&lt; to_simple_string(d) &lt;&lt; " [" &lt;&lt; d.day_of_week() &lt;&lt; "]\n";
      #else
	std::cout &lt;&lt; d &lt;&lt; " [" &lt;&lt; d.day_of_week() &lt;&lt; "]\n";
      #endif
      }


      int
      main() {

	std::cout &lt;&lt; "Enter Year: ";
	int year;
	std::cin &gt;&gt; year;

	using namespace boost::gregorian;

	//define a collection of holidays fixed by month and day
	std::vector&lt;year_based_generator*&gt; holidays;
	holidays.push_back(new partial_date(1,Jan)); //Western New Year
	holidays.push_back(new partial_date(4,Jul)); //US Independence Day
	holidays.push_back(new partial_date(25, Dec));//Christmas day


	//define a shorthand for the nth_day_of_the_week_in_month function object
	typedef nth_day_of_the_week_in_month nth_dow;
	
	//US labor day
	holidays.push_back(new nth_dow(nth_dow::first,  Monday,   Sep)); 
	//MLK Day
	holidays.push_back(new nth_dow(nth_dow::third,  Monday,   Jan)); 
	//Pres day
	holidays.push_back(new nth_dow(nth_dow::second, Tuesday,  Feb)); 
	//Thanksgiving
	holidays.push_back(new nth_dow(nth_dow::fourth, Thursday, Nov)); 

	typedef std::set&lt;date&gt; date_set;
	date_set all_holidays;
	
	for(std::vector&lt;year_based_generator*&gt;::iterator it = holidays.begin();
	    it != holidays.end(); ++it)
	{
	  all_holidays.insert((*it)-&gt;get_date(year));
	}

	//print the holidays to the screen
	std::for_each(all_holidays.begin(), all_holidays.end(), print_date);
	std::cout &lt;&lt; "Number Holidays: " &lt;&lt; all_holidays.size() &lt;&lt; std::endl;

	return 0;
      }

    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block><fo:block id="date_time.examples.print_month"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Print Month</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  
    Simple utility to print out days of the month with the days of a month. Demontstrates date iteration (date_time::date_itr).
  </fo:block><fo:block id="id441214" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    
      /* This example prints all the dates in a month. It demonstrates
       * the use of iterators as well as functions of the gregorian_calendar
       * 
       * Output:
       * Enter Year: 2002
       * Enter Month(1..12): 2
       * 2002-Feb-01 [Fri]
       * 2002-Feb-02 [Sat]
       * 2002-Feb-03 [Sun]
       * 2002-Feb-04 [Mon]
       * 2002-Feb-05 [Tue]
       * 2002-Feb-06 [Wed]
       * 2002-Feb-07 [Thu]
       */

      #include "boost/date_time/gregorian/gregorian.hpp"
      #include &lt;iostream&gt;

      int
      main()
      {
	std::cout &lt;&lt; "Enter Year: ";
	int year, month;
	std::cin &gt;&gt; year;
	std::cout &lt;&lt; "Enter Month(1..12): ";
	std::cin &gt;&gt; month;

	using namespace boost::gregorian;
	try {
	  //Use the calendar to get the last day of the month
	  int eom_day = gregorian_calendar::end_of_month_day(year,month);
	  date endOfMonth(year,month,eom_day);

	  //construct an iterator starting with firt day of the month
	  day_iterator ditr(date(year,month,1));
	  //loop thru the days and print each one
	  for (; ditr &lt;= endOfMonth; ++ditr) {
      #if defined(BOOST_DATE_TIME_NO_LOCALE) 
	    std::cout &lt;&lt; to_simple_string(*ditr) &lt;&lt; " ["
      #else
	    std::cout &lt;&lt; *ditr &lt;&lt; " ["
      #endif
		      &lt;&lt; ditr-&gt;day_of_week() &lt;&lt; "]"
		      &lt;&lt; std::endl; 
	  }
	}
	catch(std::exception&amp; e) {

	  std::cout &lt;&lt; "Error bad date, check your entry: \n"
		    &lt;&lt; "  Details: " &lt;&lt; e.what() &lt;&lt; std::endl;
	}
	return 0;
      }

    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block><fo:block id="date_time.examples.month_add"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Month Adding</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> 
    Adding a month to a day without the use of iterators.
  </fo:block><fo:block id="id441289" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    
      /* Simple program that uses the gregorian calendar to progress by exactly
       * one month, irregardless of how many days are in that month.
       *
       * This method can be used as an alternative to iterators
       */

      #include "boost/date_time/gregorian/gregorian.hpp"
      #include &lt;iostream&gt;

      int
      main()
      {

	using namespace boost::gregorian;
	typedef boost::date_time::month_functor&lt;date&gt; add_month;

	date d = day_clock::local_day();
	add_month mf(1);
	date d2 = d + mf.get_offset(d);
	std::cout &lt;&lt; "Today is: " &lt;&lt; to_simple_string(d) &lt;&lt; ".\n"
	  &lt;&lt; "One month from today will be: " &lt;&lt; to_simple_string(d2) 
	  &lt;&lt; std::endl;

	return 0;
      }
    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block><fo:block id="date_time.examples.time_math"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Time Math</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> 
    Various types of calculations with times and time durations.  
  </fo:block><fo:block id="id441339" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    
      /* Some simple examples of constructing and calculating with times
       * Output:
       * 2002-Feb-01 00:00:00 - 2002-Feb-01 05:04:02.001000000 = -5:04:02.001000000
       */

      #include "boost/date_time/posix_time/posix_time.hpp"
      #include &lt;iostream&gt;

      int
      main() 
      {
	using namespace boost::posix_time;
	using namespace boost::gregorian;

	date d(2002,Feb,1); //an arbitrary date
	//construct a time by adding up some durations durations
	ptime t1(d, hours(5)+minutes(4)+seconds(2)+millisec(1));
	//construct a new time by subtracting some times
	ptime t2 = t1 - hours(5)- minutes(4)- seconds(2)- millisec(1);
	//construct a duration by taking the difference between times
	time_duration td = t2 - t1;
	  
	std::cout &lt;&lt; to_simple_string(t2) &lt;&lt; " - " 
		  &lt;&lt; to_simple_string(t1) &lt;&lt; " = "
		  &lt;&lt; to_simple_string(td) &lt;&lt; std::endl;
	
	return 0;
      }
    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block><fo:block id="date_time.examples.print_hours"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Print Hours</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Demonstrate time iteration, clock retrieval, and simple calculation. 
  </fo:block><fo:block id="id441401" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    
      /* Print the remaining hours of the day
       * Uses the clock to get the local time 
       * Use an iterator to iterate over the remaining hours
       * Retrieve the date part from a time
       *
       * Expected Output something like:
       *
       * 2002-Mar-08 16:30:59
       * 2002-Mar-08 17:30:59
       * 2002-Mar-08 18:30:59
       * 2002-Mar-08 19:30:59
       * 2002-Mar-08 20:30:59
       * 2002-Mar-08 21:30:59
       * 2002-Mar-08 22:30:59
       * 2002-Mar-08 23:30:59
       * Time left till midnight: 07:29:01
       */

      #include "boost/date_time/posix_time/posix_time.hpp"
      #include &lt;iostream&gt;

      int
      main() 
      {
	using namespace boost::posix_time;
	using namespace boost::gregorian;

	//get the current time from the clock -- one second resolution
	ptime now = second_clock::local_time();
	//Get the date part out of the time
	date today = now.date();
	date tommorrow = today + days(1);
	ptime tommorrow_start(tommorrow); //midnight 

	//iterator adds by one hour
	time_iterator titr(now,hours(1)); 
	for (; titr &lt; tommorrow_start; ++titr) {
	  std::cout &lt;&lt; to_simple_string(*titr) &lt;&lt; std::endl;
	}
	
	time_duration remaining = tommorrow_start - now;
	std::cout &lt;&lt; "Time left till midnight: " 
		  &lt;&lt; to_simple_string(remaining) &lt;&lt; std::endl;
	return 0;
      }

    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block><fo:block id="date_time.examples.local_utc_conversion"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Local to UTC Conversion</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Demonstrate utc to local and local to utc calculations including dst.
  </fo:block><fo:block id="id441472" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    

      /* Demonstrate conversions between a local time and utc
       * Output:
       * 
       * UTC &lt;--&gt; New York while DST is NOT active (5 hours)
       * 2001-Dec-31 19:00:00 in New York is 2002-Jan-01 00:00:00 UTC time 
       * 2002-Jan-01 00:00:00 UTC is 2001-Dec-31 19:00:00 New York time 
       * 
       * UTC &lt;--&gt; New York while DST is active (4 hours)
       * 2002-May-31 20:00:00 in New York is 2002-Jun-01 00:00:00 UTC time 
       * 2002-Jun-01 00:00:00 UTC is 2002-May-31 20:00:00 New York time 
       * 
       * UTC &lt;--&gt; Arizona (7 hours)
       * 2002-May-31 17:00:00 in Arizona is 2002-Jun-01 00:00:00 UTC time 
       */

      #include "boost/date_time/posix_time/posix_time.hpp"
      #include "boost/date_time/local_time_adjustor.hpp"
      #include "boost/date_time/c_local_time_adjustor.hpp"
      #include &lt;iostream&gt;

      int
      main() 
      {
	using namespace boost::posix_time;
	using namespace boost::gregorian;

	//This local adjustor depends on the machine TZ settings-- highly dangerous!
	typedef boost::date_time::c_local_adjustor&lt;ptime&gt; local_adj;
	ptime t10(date(2002,Jan,1), hours(7)); 
	ptime t11 = local_adj::utc_to_local(t10);
	std::cout &lt;&lt; "UTC &lt;--&gt; Zone base on TZ setting" &lt;&lt; std::endl;
	std::cout &lt;&lt; to_simple_string(t11) &lt;&lt; " in your TZ is " 
		  &lt;&lt; to_simple_string(t10) &lt;&lt; " UTC time "
		  &lt;&lt; std::endl;
	time_duration td = t11 - t10;
	std::cout &lt;&lt; "A difference of: " 
		  &lt;&lt; to_simple_string(td) &lt;&lt; std::endl;


	//eastern timezone is utc-5
	typedef boost::date_time::local_adjustor&lt;ptime, -5, us_dst&gt; us_eastern;

	ptime t1(date(2001,Dec,31), hours(19)); //5 hours b/f midnight NY time

	std::cout &lt;&lt; "\nUTC &lt;--&gt; New York while DST is NOT active (5 hours)" 
		  &lt;&lt; std::endl;
	ptime t2 =  us_eastern::local_to_utc(t1);
	std::cout &lt;&lt; to_simple_string(t1) &lt;&lt; " in New York is " 
		  &lt;&lt; to_simple_string(t2) &lt;&lt; " UTC time "
		  &lt;&lt; std::endl;

	ptime t3 = us_eastern::utc_to_local(t2);//back should be the same
	std::cout &lt;&lt; to_simple_string(t2) &lt;&lt; " UTC is " 
		  &lt;&lt; to_simple_string(t3) &lt;&lt; " New York time "
		  &lt;&lt; "\n\n";

	ptime t4(date(2002,May,31), hours(20)); //4 hours b/f midnight NY time
	std::cout &lt;&lt; "UTC &lt;--&gt; New York while DST is active (4 hours)" &lt;&lt; std::endl;
	ptime t5 = us_eastern::local_to_utc(t4);
	std::cout &lt;&lt; to_simple_string(t4) &lt;&lt; " in New York is " 
		  &lt;&lt; to_simple_string(t5) &lt;&lt; " UTC time "
		  &lt;&lt; std::endl;

	ptime t6 = us_eastern::utc_to_local(t5);//back should be the same
	std::cout &lt;&lt; to_simple_string(t5) &lt;&lt; " UTC is " 
		  &lt;&lt; to_simple_string(t6) &lt;&lt; " New York time "
		  &lt;&lt; "\n" &lt;&lt; std::endl;

	  
	//Arizona timezone is utc-7 with no dst
	typedef boost::date_time::local_adjustor&lt;ptime, -7, no_dst&gt; us_arizona;

	ptime t7(date(2002,May,31), hours(17)); 
	std::cout &lt;&lt; "UTC &lt;--&gt; Arizona (7 hours)" &lt;&lt; std::endl;
	ptime t8 = us_arizona::local_to_utc(t7);
	std::cout &lt;&lt; to_simple_string(t7) &lt;&lt; " in Arizona is " 
		  &lt;&lt; to_simple_string(t8) &lt;&lt; " UTC time "
		  &lt;&lt; std::endl;

	return 0;
      }

    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block><fo:block id="date_time.examples.time_periods"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Time Periods</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Demonstrate some simple uses of time periods. 
  </fo:block><fo:block id="id441501" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    

      /* Some simple examples of constructing and calculating with times
       * Returns:
       * [2002-Feb-01 00:00:00/2002-Feb-01 23:59:59.999999999] contains 2002-Feb-01 03:00:05
       * [2002-Feb-01 00:00:00/2002-Feb-01 23:59:59.999999999] intersected with
       * [2002-Feb-01 00:00:00/2002-Feb-01 03:00:04.999999999] is 
       * [2002-Feb-01 00:00:00/2002-Feb-01 03:00:04.999999999]
       */

      #include "boost/date_time/posix_time/posix_time.hpp"
      #include &lt;iostream&gt;

      using namespace boost::posix_time;
      using namespace boost::gregorian;

      //Create a simple period class to contain all the times in a day
      class day_period : public time_period
      {
      public:
	day_period(date d) : time_period(ptime(d),//midnight
					 ptime(d,hours(24)))
	{}

      };

      int
      main() 
      {

	date d(2002,Feb,1); //an arbitrary date
	//a period that represents a day  
	day_period dp(d);
	ptime t(d, hours(3)+seconds(5)); //an arbitray time on that day
	if (dp.contains(t)) {
	  std::cout &lt;&lt; to_simple_string(dp) &lt;&lt; " contains "
		    &lt;&lt; to_simple_string(t)  &lt;&lt; std::endl;
	}
	//a period that represents part of the day
	time_period part_of_day(ptime(d, hours(0)), t);
	//intersect the 2 periods and print the results
	if (part_of_day.intersects(dp)) {
	  time_period result = part_of_day.intersection(dp);
	  std::cout &lt;&lt; to_simple_string(dp) &lt;&lt; " intersected with\n"
		    &lt;&lt; to_simple_string(part_of_day) &lt;&lt; " is \n"
		    &lt;&lt; to_simple_string(result) &lt;&lt; std::endl;
	}
	  
	
	return 0;
      }

    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="top">top</fo:basic-link></fo:block></fo:block></fo:block><fo:block id="date_time.doxy"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Library Reference</fo:marker><fo:block font-size="17.28pt">Library Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The following is a detailed reference of the date_time library. A click on any of the reference links will take you to a list of the header files found in that section. Following one of those links will take you to a list of the items declared in that header file. Further sublinks take you to detailed descriptions of each individual item.
  </fo:block><fo:block id="date_time_reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Date Time Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id308102"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/adjust_functors.hpp">boost/date_time/adjust_functors.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id441688" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="day_functor">day_functor</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="month_functor">month_functor</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="week_functor">week_functor</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="year_functor">year_functor</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="day_functor"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template day_functor</fo:block></fo:block><fo:block space-after="1em">Class template day_functor <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Functor to iterate a fixed number of days. </fo:block></fo:block><fo:block>boost::date_time::day_functor</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id441844"><fo:block/><fo:block id="id441845" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> day_functor {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type duration_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="day_functorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id313858-bb">day_functor</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id374751-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id374754-bb">get_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id317426-bb">get_neg_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id441983"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id441987"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">day_functor construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="day_functorconstruct-copy-destruct"/><fo:inline font-family="monospace">day_functor</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id442004" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id442010" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id442012" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id313858-bb"/>day_functor(<fo:inline font-weight="bold">int</fo:inline> f);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id442032"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">day_functor public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id374751-bb"/><fo:inline font-family="monospace">day_functor</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id442047" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id442053" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id442056" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id374754-bb"/>get_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id442086" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id442089" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id317426-bb"/>get_neg_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="month_functor"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template month_functor</fo:block></fo:block><fo:block space-after="1em">Class template month_functor <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Provides calculation to find next nth month given a date. </fo:block></fo:block><fo:block>boost::date_time::month_functor</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id442140"><fo:block/><fo:block id="id442141" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> month_functor {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::calendar_type cal_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> cal_type::ymd_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ymd_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> cal_type::day_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; day_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="month_functorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id439631-bb">month_functor</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id349946-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id334597-bb">get_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id332389-bb">get_neg_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id442303"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This adjustment function provides the logic for 'month-based' advancement on a ymd based calendar. The policy it uses to handle the non existant end of month days is to back up to the last day of the month. Also, if the starting date is the last day of a month, this functor will attempt to adjust to the end of the month. </fo:block><fo:block id="id442315"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">month_functor construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="month_functorconstruct-copy-destruct"/><fo:inline font-family="monospace">month_functor</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id442331" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id442337" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id442340" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id439631-bb"/>month_functor(<fo:inline font-weight="bold">int</fo:inline> f);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id442359"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">month_functor public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id349946-bb"/><fo:inline font-family="monospace">month_functor</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id442373" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id442379" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id442382" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id334597-bb"/>get_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id442412" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id442415" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id332389-bb"/>get_neg_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns a negative duration_type. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="week_functor"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template week_functor</fo:block></fo:block><fo:block space-after="1em">Class template week_functor <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Functor to iterate a over weeks. </fo:block></fo:block><fo:block>boost::date_time::week_functor</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id442468"><fo:block/><fo:block id="id442469" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> week_functor {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::calendar_type calendar_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="week_functorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id393715-bb">week_functor</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id435416-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id397281-bb">get_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id355309-bb">get_neg_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id442616"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id442620"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">week_functor construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="week_functorconstruct-copy-destruct"/><fo:inline font-family="monospace">week_functor</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id442636" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id442642" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id442645" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id393715-bb"/>week_functor(<fo:inline font-weight="bold">int</fo:inline> f);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id442664"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">week_functor public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id435416-bb"/><fo:inline font-family="monospace">week_functor</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id442679" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id442685" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id442688" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id397281-bb"/>get_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id442718" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id442721" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id355309-bb"/>get_neg_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="year_functor"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template year_functor</fo:block></fo:block><fo:block space-after="1em">Class template year_functor <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Functor to iterate by a year adjusting for leap years. </fo:block></fo:block><fo:block>boost::date_time::year_functor</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id442772"><fo:block/><fo:block id="id442774" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> year_functor {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type duration_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="year_functorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id300118-bb">year_functor</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id312559-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id325316-bb">get_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id414188-bb">get_neg_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id442913"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id442917"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">year_functor construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="year_functorconstruct-copy-destruct"/><fo:inline font-family="monospace">year_functor</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id442933" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id442939" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id442941" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id300118-bb"/>year_functor(<fo:inline font-weight="bold">int</fo:inline> f);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id442961"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">year_functor public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id312559-bb"/><fo:inline font-family="monospace">year_functor</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id442976" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id442982" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id442985" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id325316-bb"/>get_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id443016" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id443018" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id414188-bb"/>get_neg_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id400379"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/c_local_time_adjustor.hpp">boost/date_time/c_local_time_adjustor.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Time adjustment calculations based on machine</fo:block><fo:block id="id443069" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="c_local_adjustor">c_local_adjustor</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="c_local_adjustor"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template c_local_adjustor</fo:block></fo:block><fo:block space-after="1em">Class template c_local_adjustor <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Adjust to / from utc using the C API. </fo:block></fo:block><fo:block>boost::date_time::c_local_adjustor</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id443137"><fo:block/><fo:block id="id443138" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> c_local_adjustor {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::time_duration_type time_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::date_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_duration_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id317142-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id425892-bb">utc_to_local</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id443231"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Warning!!! This class assumes that timezone settings of the machine are correct. This can be a very dangerous assumption. </fo:block><fo:block id="id443240"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">c_local_adjustor public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id317142-bb"/><fo:inline font-family="monospace">c_local_adjustor</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id443255" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id443261" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id443263" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id425892-bb"/>utc_to_local(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; t) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convert a utc time to local time. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id368278"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/c_time.hpp">boost/date_time/c_time.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Provide workarounds related to the ctime header</fo:block><fo:block id="id443310" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> std {
}</fo:block></fo:block><fo:block id="id386650"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/compiler_config.hpp">boost/date_time/compiler_config.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id443336" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> std {
}</fo:block></fo:block><fo:block id="id304692"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/constrained_value.hpp">boost/date_time/constrained_value.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id443363" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> CV {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> value_policies&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="constrained_value">constrained_value</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> rep_type, rep_type min_value, rep_type max_value, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> exception_type&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="simple_exception_policy">simple_exception_policy</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Represent a min or max violation type. </fo:block></fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:wrapper id="id370701"/>violation_enum { min_violation, max_violation };
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="constrained_value"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template constrained_value</fo:block></fo:block><fo:block space-after="1em">Class template constrained_value <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A template to specify a constrained basic value type. </fo:block></fo:block><fo:block>boost::CV::constrained_value</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id443494"><fo:block/><fo:block id="id443495" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> value_policies&gt; 
<fo:inline font-weight="bold">class</fo:inline> constrained_value {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> value_policies::value_type value_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="constrained_valueconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id356804-bb">constrained_value</fo:basic-link>(value_type);
&#xA0;&#xA0;constrained_value&amp; <fo:basic-link internal-destination="id379704-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(value_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id405391-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id408974-bb"><fo:inline font-weight="bold">operator</fo:inline> value_type</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id315083-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;value_type max <fo:basic-link internal-destination="id336420-bb">BOOST_PREVENT_MACRO_SUBSTITUTION</fo:basic-link>() ;
&#xA0;&#xA0;value_type min <fo:basic-link internal-destination="id332286-bb">BOOST_PREVENT_MACRO_SUBSTITUTION</fo:basic-link>() ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id336013-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id321784-bb">assign</fo:basic-link>(value_type) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id443682"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This template provides a quick way to generate an integer type with a constrained range. The type provides for the ability to specify the min, max, and and error handling policy.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">value policies</fo:inline>  A class that provides the range limits via the min and max functions as well as a function on_error that determines how errors are handled. A common strategy would be to assert or throw and exception. The on_error is passed both the current value and the new value that is in error. </fo:block><fo:block id="id443704"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">constrained_value construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="constrained_valueconstruct-copy-destruct"/><fo:inline font-family="monospace">constrained_value</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id443720" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id443727" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id443729" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id356804-bb"/>constrained_value(value_type value);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id443743" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id443746" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">constrained_value&amp; <fo:wrapper id="id379704-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(value_type v);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id443766"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">constrained_value public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id405391-bb"/><fo:inline font-family="monospace">constrained_value</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id443781" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id443787" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id443789" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id408974-bb"/><fo:inline font-weight="bold">operator</fo:inline> value_type() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Coerce into the representation type. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id443818"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">constrained_value public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id315083-bb"/><fo:inline font-family="monospace">constrained_value</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id443833" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id443839" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id443841" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">value_type max <fo:wrapper id="id336420-bb"/>BOOST_PREVENT_MACRO_SUBSTITUTION() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the max allowed value (traits method). </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id443863" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id443865" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">value_type min <fo:wrapper id="id332286-bb"/>BOOST_PREVENT_MACRO_SUBSTITUTION() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the min allowed value (traits method). </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id443886"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">constrained_value private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id336013-bb"/><fo:inline font-family="monospace">constrained_value</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id443901" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id443907" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id443909" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id321784-bb"/>assign(value_type value) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="simple_exception_policy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template simple_exception_policy</fo:block></fo:block><fo:block space-after="1em">Class template simple_exception_policy <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Template to shortcut the constrained_value policy creation process. </fo:block></fo:block><fo:block>boost::CV::simple_exception_policy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id443953"><fo:block/><fo:block id="id443954" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> rep_type, rep_type min_value, rep_type max_value, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> exception_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> simple_exception_policy {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> rep_type value_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id353157-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;rep_type min <fo:basic-link internal-destination="id343058-bb">BOOST_PREVENT_MACRO_SUBSTITUTION</fo:basic-link>() ;
&#xA0;&#xA0;rep_type max <fo:basic-link internal-destination="id342984-bb">BOOST_PREVENT_MACRO_SUBSTITUTION</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id306136-bb">on_error</fo:basic-link>(rep_type, rep_type, violation_enum) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id444063"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id444067"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">simple_exception_policy public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id353157-bb"/><fo:inline font-family="monospace">simple_exception_policy</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id444082" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id444088" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id444090" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">rep_type min <fo:wrapper id="id343058-bb"/>BOOST_PREVENT_MACRO_SUBSTITUTION() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id444108" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id444110" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">rep_type max <fo:wrapper id="id342984-bb"/>BOOST_PREVENT_MACRO_SUBSTITUTION() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id444128" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id444130" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id306136-bb"/>on_error(rep_type , rep_type , violation_enum ) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id383676"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/date.hpp">boost/date_time/date.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id444168" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, <fo:inline font-weight="bold">typename</fo:inline> calendar, <fo:inline font-weight="bold">typename</fo:inline> duration_type_&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="boost.date_time.date">date</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="boost.date_time.date"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template date</fo:block></fo:block><fo:block space-after="1em">Class template date <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Representation of timepoint at the one day level resolution. </fo:block></fo:block><fo:block>boost::date_time::date</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id444249"><fo:block/><fo:block id="id444250" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, <fo:inline font-weight="bold">typename</fo:inline> calendar, <fo:inline font-weight="bold">typename</fo:inline> duration_type_&gt; 
<fo:inline font-weight="bold">class</fo:inline> date {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; calendar_type;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar::date_traits_type traits_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> duration_type_&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; duration_type;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar::year_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; year_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar::month_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar::day_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; day_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar::ymd_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ymd_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar::date_rep_type&#xA0;&#xA0;&#xA0; date_rep_type;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar::date_int_type&#xA0;&#xA0;&#xA0; date_int_type;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar::day_of_week_type day_of_week_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="boost.date_time.dateconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id398749-bb">date</fo:basic-link>(year_type, month_type, day_type);
&#xA0;&#xA0;<fo:basic-link internal-destination="id342318-bb">date</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id323739-bb">date</fo:basic-link>(date_int_type);
&#xA0;&#xA0;<fo:basic-link internal-destination="id372396-bb">date</fo:basic-link>(date_rep_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id397241-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;year_type <fo:basic-link internal-destination="id397245-bb">year</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;month_type <fo:basic-link internal-destination="id375666-bb">month</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;day_type <fo:basic-link internal-destination="id355015-bb">day</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;day_of_week_type <fo:basic-link internal-destination="id305945-bb">day_of_week</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;ymd_type <fo:basic-link internal-destination="id353902-bb">year_month_day</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id419462-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id305254-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id372630-bb">is_special</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id361215-bb">is_not_a_date</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id281396-bb">is_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id409013-bb">is_pos_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id430174-bb">is_neg_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;special_values <fo:basic-link internal-destination="id337192-bb">as_special</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id287855-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id443122-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id380262-bb"><fo:inline font-weight="bold">operator</fo:inline>-=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp;) ;
&#xA0;&#xA0;date_rep_type <fo:basic-link internal-destination="id299754-bb">day_count</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id244454-bb"><fo:inline font-weight="bold">operator</fo:inline>+</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id342556-bb"><fo:inline font-weight="bold">operator</fo:inline>+=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp;) ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id401946-bb">protected member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id444948"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The date template represents an interface shell for a date class that is based on a year-month-day system such as the gregorian or iso systems. It provides basic operations to enable calculation and comparisons.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Theory</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This date representation fundamentally departs from the C tm struct approach. The goal for this type is to provide efficient date operations (add, subtract) and storage (minimize space to represent) in a concrete class. Thus, the date uses a count internally to represent a particular date. The calendar parameter defines the policies for converting the the year-month-day and internal counted form here. Applications that need to perform heavy formatting of the same date repeatedly will perform better by using the year-month-day representation.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Internally the date uses a day number to represent the date. This is a monotonic time representation. This representation allows for fast comparison as well as simplifying the creation of writing numeric operations. Essentially, the internal day number is like adjusted julian day. The adjustment is determined by the Epoch date which is represented as day 1 of the calendar. Day 0 is reserved for negative infinity so that any actual date is automatically greater than negative infinity. When a date is constructed from a date or formatted for output, the appropriate conversions are applied to create the year, month, day representations. </fo:block><fo:block id="id444980"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="boost.date_time.dateconstruct-copy-destruct"/><fo:inline font-family="monospace">date</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id444996" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id445002" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445005" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id398749-bb"/>date(year_type y, month_type m, day_type d);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445019" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445022" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id342318-bb"/>date(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp; ymd);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445041" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445044" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id323739-bb"/>date(date_int_type days);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a private constructor which allows for the creation of new dates. It is not exposed to users since that would require class users to understand the inner workings of the date class. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445063" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445065" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id372396-bb"/>date(date_rep_type days);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id445079"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id397241-bb"/><fo:inline font-family="monospace">date</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id445094" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id445099" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445102" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">year_type <fo:wrapper id="id397245-bb"/>year() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445126" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445128" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_type <fo:wrapper id="id375666-bb"/>month() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445151" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445154" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_type <fo:wrapper id="id355015-bb"/>day() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445177" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445180" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_of_week_type <fo:wrapper id="id305945-bb"/>day_of_week() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445203" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445206" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">ymd_type <fo:wrapper id="id353902-bb"/>year_month_day() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445229" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445232" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id419462-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445270" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445272" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id305254-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445311" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445314" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id372630-bb"/>is_special() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">check to see if date is a special value </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445344" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445347" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id361215-bb"/>is_not_a_date() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">check to see if date is not a value </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445378" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445380" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id281396-bb"/>is_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">check to see if date is one of the infinity values </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445410" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445412" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id409013-bb"/>is_pos_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">check to see if date is greater than all possible dates </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445443" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445446" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id430174-bb"/>is_neg_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">check to see if date is greater than all possible dates </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445477" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>13.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445479" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">special_values <fo:wrapper id="id337192-bb"/>as_special() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">return as a special value or a not_special if a normal date </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445506" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>14.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445508" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id287855-bb"/><fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445543" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>15.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445546" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id443122-bb"/><fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp; dd) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445581" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>16.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445584" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id380262-bb"/><fo:inline font-weight="bold">operator</fo:inline>-=(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp; dd) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445613" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>17.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445616" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_rep_type <fo:wrapper id="id299754-bb"/>day_count() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445639" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>18.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445642" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id244454-bb"/><fo:inline font-weight="bold">operator</fo:inline>+(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp; dd) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id445677" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>19.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445679" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id342556-bb"/><fo:inline font-weight="bold">operator</fo:inline>+=(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp; dd) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id445708"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date protected member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id401946-bb"/><fo:inline font-family="monospace">date</fo:inline> protected member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id445723" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id417259"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/date_clock_device.hpp">boost/date_time/date_clock_device.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id445745" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="day_clock">day_clock</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="day_clock"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template day_clock</fo:block></fo:block><fo:block space-after="1em">Class template day_clock <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A clock providing day level services based on C time_t capabilities. </fo:block></fo:block><fo:block>boost::date_time::day_clock</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id445813"><fo:block/><fo:block id="id445814" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> day_clock {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::ymd_type ymd_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id423222-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id432375-bb">local_day</fo:basic-link>() ;
&#xA0;&#xA0;date_type::ymd_type <fo:basic-link internal-destination="id313143-bb">local_day_ymd</fo:basic-link>() ;
&#xA0;&#xA0;date_type::ymd_type <fo:basic-link internal-destination="id315035-bb">universal_day_ymd</fo:basic-link>() ;
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id379622-bb">universal_day</fo:basic-link>() ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id329464-bb">private static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;::std::tm * <fo:basic-link internal-destination="id307920-bb">get_local_time</fo:basic-link>() ;
&#xA0;&#xA0;::std::tm * <fo:basic-link internal-destination="id396318-bb">get_universal_time</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id445964"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This clock uses Posix interfaces as its implementation and hence uses the timezone settings of the operating system. Incorrect user settings will result in incorrect results for the calls to local_day. </fo:block><fo:block id="id445974"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">day_clock public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id423222-bb"/><fo:inline font-family="monospace">day_clock</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id445989" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id445995" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id445998" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id432375-bb"/>local_day() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Get the local day as a date type. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id446018" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id446020" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type::ymd_type <fo:wrapper id="id313143-bb"/>local_day_ymd() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Get the local day as a ymd_type. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id446041" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id446043" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type::ymd_type <fo:wrapper id="id315035-bb"/>universal_day_ymd() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Get the current day in universal date as a ymd_type. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id446065" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id446067" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id379622-bb"/>universal_day() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Get the UTC day as a date type. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id446088"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">day_clock private static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id329464-bb"/><fo:inline font-family="monospace">day_clock</fo:inline> private static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id446102" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id446108" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id446110" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">::std::tm * <fo:wrapper id="id307920-bb"/>get_local_time() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id446128" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id446130" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">::std::tm * <fo:wrapper id="id396318-bb"/>get_universal_time() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id354175"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/date_defs.hpp">boost/date_time/date_defs.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id446164" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An enumeration of weekday names. </fo:block></fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:wrapper id="id389709"/>weekdays { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;Saturday };

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Simple enum to allow for nice programming with Jan, Feb, etc. </fo:block></fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:wrapper id="id316500"/>months_of_year { Jan = 1, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;Nov, Dec, NotAMonth, NumMonths };
&#xA0;&#xA0;}
}</fo:block></fo:block><fo:block id="id432576"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/date_duration.hpp">boost/date_time/date_duration.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id446247" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> duration_rep_traits&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="duration_traits_long">duration_traits_long</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="duration_traits_adapted">duration_traits_adapted</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="date_duration"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template date_duration</fo:block></fo:block><fo:block space-after="1em">Class template date_duration <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Duration type with date level resolution. </fo:block></fo:block><fo:block>boost::date_time::date_duration</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id446350"><fo:block/><fo:block id="id446351" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> duration_rep_traits&gt; 
<fo:inline font-weight="bold">class</fo:inline> date_duration {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> duration_rep_traits::int_type&#xA0; duration_rep_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> duration_rep_traits::impl_type duration_rep;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="date_durationconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id424728-bb">date_duration</fo:basic-link>(duration_rep);
&#xA0;&#xA0;<fo:basic-link internal-destination="id383990-bb">date_duration</fo:basic-link>(special_values);
&#xA0;&#xA0;<fo:basic-link internal-destination="id411493-bb">date_duration</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link>&lt; duration_rep_traits &gt; &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id423776-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;duration_rep <fo:basic-link internal-destination="id383623-bb">get_rep</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id321140-bb">is_special</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_rep_type <fo:basic-link internal-destination="id302579-bb">days</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id410273-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id328694-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> <fo:basic-link internal-destination="id324924-bb"><fo:inline font-weight="bold">operator</fo:inline>-=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> &amp;) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> <fo:basic-link internal-destination="id363569-bb"><fo:inline font-weight="bold">operator</fo:inline>+=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> &amp;) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> <fo:basic-link internal-destination="id319793-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link>&lt; duration_rep_traits &gt; <fo:basic-link internal-destination="id324889-bb"><fo:inline font-weight="bold">operator</fo:inline>/=</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link>&lt; duration_rep_traits &gt; <fo:basic-link internal-destination="id416013-bb"><fo:inline font-weight="bold">operator</fo:inline>/</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id244232-bb">is_negative</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id400391-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> <fo:basic-link internal-destination="id400394-bb">unit</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id446847"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id446851"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date_duration construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="date_durationconstruct-copy-destruct"/><fo:inline font-family="monospace">date_duration</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id446867" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id446873" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id446876" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id424728-bb"/>date_duration(duration_rep day_count);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct from a day count. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id446892" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id446894" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id383990-bb"/>date_duration(special_values sv);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">construct from special_values - only works when instantiated with duration_traits_adapted </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id446912" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id446914" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id411493-bb"/>date_duration(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link>&lt; duration_rep_traits &gt; &amp; other);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct from another date_duration (Copy Constructor). </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id446946"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date_duration public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id423776-bb"/><fo:inline font-family="monospace">date_duration</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id446961" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id446967" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id446969" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_rep <fo:wrapper id="id383623-bb"/>get_rep() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">returns days_ as it's instantiated type - used for streaming </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id446997" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id446999" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id321140-bb"/>is_special() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id447026" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id447029" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_rep_type <fo:wrapper id="id302579-bb"/>days() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">returns days as value, not object. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id447056" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id447058" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id410273-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equality. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id447107" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id447109" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id328694-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Less. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id447159" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id447161" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> <fo:wrapper id="id324924-bb"/><fo:inline font-weight="bold">operator</fo:inline>-=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> &amp; rhs) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Subtract another duration -- result is signed. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id447206" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id447209" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> <fo:wrapper id="id363569-bb"/><fo:inline font-weight="bold">operator</fo:inline>+=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> &amp; rhs) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Add a duration -- result is signed. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id447254" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id447257" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> <fo:wrapper id="id319793-bb"/><fo:inline font-weight="bold">operator</fo:inline>-() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">unary- Allows for dd = -date_duration(2); -&gt; dd == -2 </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id447295" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id447297" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link>&lt; duration_rep_traits &gt; <fo:wrapper id="id324889-bb"/><fo:inline font-weight="bold">operator</fo:inline>/=(<fo:inline font-weight="bold">int</fo:inline> divisor) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Division operations on a duration with an integer. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id447336" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id447339" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link>&lt; duration_rep_traits &gt; <fo:wrapper id="id416013-bb"/><fo:inline font-weight="bold">operator</fo:inline>/(<fo:inline font-weight="bold">int</fo:inline> divisor) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id447375" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id447377" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id244232-bb"/>is_negative() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">return sign information </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id447407"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date_duration public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id400391-bb"/><fo:inline font-family="monospace">date_duration</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id447422" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id447429" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id447431" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="date_duration">date_duration</fo:basic-link> <fo:wrapper id="id400394-bb"/>unit() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns the smallest duration -- used by to calculate 'end'. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="duration_traits_long"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct duration_traits_long</fo:block></fo:block><fo:block space-after="1em">Struct duration_traits_long <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::date_time::duration_traits_long</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id447475"><fo:block/><fo:block id="id447477" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> duration_traits_long {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-weight="bold">long</fo:inline> int_type;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-weight="bold">long</fo:inline> impl_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id413989-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id431286-bb">as_number</fo:basic-link>(impl_type) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id447545"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Struct for instantiating date_duration with <fo:inline font-weight="bold">NO</fo:inline>  special values functionality. Allows for transparent implementation of either date_duration&lt;long&gt; or date_duration&lt;int_adapter&lt;long&gt; &gt; </fo:block><fo:block id="id447562"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">duration_traits_long public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id413989-bb"/><fo:inline font-family="monospace">duration_traits_long</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id447577" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id447583" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id447585" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id431286-bb"/>as_number(impl_type i) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="duration_traits_adapted"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct duration_traits_adapted</fo:block></fo:block><fo:block space-after="1em">Struct duration_traits_adapted <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::date_time::duration_traits_adapted</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id447622"><fo:block/><fo:block id="id447623" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> duration_traits_adapted {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-weight="bold">long</fo:inline>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; int_type;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="int_adapter">boost::date_time::int_adapter</fo:basic-link>&lt; <fo:inline font-weight="bold">long</fo:inline> &gt; impl_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id360428-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id360432-bb">as_number</fo:basic-link>(impl_type) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id447702"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Struct for instantiating date_duration <fo:inline font-weight="bold">WITH</fo:inline>  special values functionality. Allows for transparent implementation of either date_duration&lt;long&gt; or date_duration&lt;int_adapter&lt;long&gt; &gt; </fo:block><fo:block id="id447719"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">duration_traits_adapted public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id360428-bb"/><fo:inline font-family="monospace">duration_traits_adapted</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id447735" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id447740" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id447743" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id360432-bb"/>as_number(impl_type i) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id381315"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/date_duration_types.hpp">boost/date_time/date_duration_types.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id447777" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> duration_config&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="weeks_duration">weeks_duration</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> base_config&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="months_duration">months_duration</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> base_config&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="years_duration">years_duration</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="weeks_duration"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template weeks_duration</fo:block></fo:block><fo:block space-after="1em">Class template weeks_duration <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Additional duration type that represents a number of n*7 days. </fo:block></fo:block><fo:block>boost::date_time::weeks_duration</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id447906"><fo:block/><fo:block id="id447908" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> duration_config&gt; 
<fo:inline font-weight="bold">class</fo:inline> weeks_duration
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::date_time::date_duration&lt; duration_config &gt;
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="weeks_durationconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id356008-bb">weeks_duration</fo:basic-link>(<fo:inline font-weight="bold">typename</fo:inline> duration_config::impl_type);
&#xA0;&#xA0;<fo:basic-link internal-destination="id394934-bb">weeks_duration</fo:basic-link>(special_values);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id356004-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id448000"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id448003"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">weeks_duration construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="weeks_durationconstruct-copy-destruct"/><fo:inline font-family="monospace">weeks_duration</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id448019" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id448025" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id448028" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id356008-bb"/>weeks_duration(<fo:inline font-weight="bold">typename</fo:inline> duration_config::impl_type w);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id448048" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id448050" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id394934-bb"/>weeks_duration(special_values sv);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id448064"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">weeks_duration public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id356004-bb"/><fo:inline font-family="monospace">weeks_duration</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id448078" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="months_duration"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template months_duration</fo:block></fo:block><fo:block space-after="1em">Class template months_duration <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">additional duration type that represents a logical month </fo:block></fo:block><fo:block>boost::date_time::months_duration</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id448106"><fo:block/><fo:block id="id448107" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> base_config&gt; 
<fo:inline font-weight="bold">class</fo:inline> months_duration {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="months_durationconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id312183-bb">months_duration</fo:basic-link>(int_rep);
&#xA0;&#xA0;<fo:basic-link internal-destination="id342130-bb">months_duration</fo:basic-link>(special_values);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id398297-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;int_rep <fo:basic-link internal-destination="id406291-bb">number_of_months</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id341960-bb">get_neg_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id391285-bb">get_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id302829-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> months_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id335082-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> months_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;months_type <fo:basic-link internal-destination="id405264-bb"><fo:inline font-weight="bold">operator</fo:inline>+</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> months_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;months_type &amp; <fo:basic-link internal-destination="id367744-bb"><fo:inline font-weight="bold">operator</fo:inline>+=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> months_type &amp;) ;
&#xA0;&#xA0;months_type <fo:basic-link internal-destination="id440331-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> months_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;months_type &amp; <fo:basic-link internal-destination="id354756-bb"><fo:inline font-weight="bold">operator</fo:inline>-=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> months_type &amp;) ;
&#xA0;&#xA0;months_type <fo:basic-link internal-destination="id405284-bb"><fo:inline font-weight="bold">operator</fo:inline> *</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> int_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;months_type &amp; <fo:basic-link internal-destination="id430872-bb"><fo:inline font-weight="bold">operator</fo:inline> *=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> int_type) ;
&#xA0;&#xA0;months_type <fo:basic-link internal-destination="id375433-bb"><fo:inline font-weight="bold">operator</fo:inline>/</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> int_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;months_type &amp; <fo:basic-link internal-destination="id355279-bb"><fo:inline font-weight="bold">operator</fo:inline>/=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> int_type) ;
&#xA0;&#xA0;months_type <fo:basic-link internal-destination="id394412-bb"><fo:inline font-weight="bold">operator</fo:inline>+</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> years_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;months_type &amp; <fo:basic-link internal-destination="id375054-bb"><fo:inline font-weight="bold">operator</fo:inline>+=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> years_type &amp;) ;
&#xA0;&#xA0;months_type <fo:basic-link internal-destination="id371280-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> years_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;months_type &amp; <fo:basic-link internal-destination="id365338-bb"><fo:inline font-weight="bold">operator</fo:inline>-=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> years_type &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id448673"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A logical month enables things like: "date(2002,Mar,2) + months(2) -&gt; 2002-May2". If the date is a last day-of-the-month, the result will also be a last-day-of-the-month. </fo:block><fo:block id="id448688"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">months_duration construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="months_durationconstruct-copy-destruct"/><fo:inline font-family="monospace">months_duration</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id448704" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id448710" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id448713" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id312183-bb"/>months_duration(int_rep num);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id448726" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id448729" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id342130-bb"/>months_duration(special_values sv);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id448741"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">months_duration public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id398297-bb"/><fo:inline font-family="monospace">months_duration</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id448756" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id448762" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id448765" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_rep <fo:wrapper id="id406291-bb"/>number_of_months() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id448789" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id448791" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id341960-bb"/>get_neg_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">returns a negative duration </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id448825" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id448827" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id391285-bb"/>get_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id448857" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id448860" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id302829-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> months_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id448898" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id448901" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id335082-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> months_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id448940" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id448942" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type <fo:wrapper id="id405264-bb"/><fo:inline font-weight="bold">operator</fo:inline>+(<fo:inline font-weight="bold">const</fo:inline> months_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id448977" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id448980" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type &amp; <fo:wrapper id="id367744-bb"/><fo:inline font-weight="bold">operator</fo:inline>+=(<fo:inline font-weight="bold">const</fo:inline> months_type &amp; rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id449008" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id449011" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type <fo:wrapper id="id440331-bb"/><fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> months_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id449046" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id449049" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type &amp; <fo:wrapper id="id354756-bb"/><fo:inline font-weight="bold">operator</fo:inline>-=(<fo:inline font-weight="bold">const</fo:inline> months_type &amp; rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id449078" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id449081" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type <fo:wrapper id="id405284-bb"/><fo:inline font-weight="bold">operator</fo:inline> *(<fo:inline font-weight="bold">const</fo:inline> int_type rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id449116" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id449118" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type &amp; <fo:wrapper id="id430872-bb"/><fo:inline font-weight="bold">operator</fo:inline> *=(<fo:inline font-weight="bold">const</fo:inline> int_type rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id449148" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id449150" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type <fo:wrapper id="id375433-bb"/><fo:inline font-weight="bold">operator</fo:inline>/(<fo:inline font-weight="bold">const</fo:inline> int_type rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id449185" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>13.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id449188" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type &amp; <fo:wrapper id="id355279-bb"/><fo:inline font-weight="bold">operator</fo:inline>/=(<fo:inline font-weight="bold">const</fo:inline> int_type rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id449217" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>14.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id449220" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type <fo:wrapper id="id394412-bb"/><fo:inline font-weight="bold">operator</fo:inline>+(<fo:inline font-weight="bold">const</fo:inline> years_type &amp; y) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id449255" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>15.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id449257" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type &amp; <fo:wrapper id="id375054-bb"/><fo:inline font-weight="bold">operator</fo:inline>+=(<fo:inline font-weight="bold">const</fo:inline> years_type &amp; y) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id449287" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>16.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id449289" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type <fo:wrapper id="id371280-bb"/><fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> years_type &amp; y) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id449325" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>17.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id449327" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type &amp; <fo:wrapper id="id365338-bb"/><fo:inline font-weight="bold">operator</fo:inline>-=(<fo:inline font-weight="bold">const</fo:inline> years_type &amp; y) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="years_duration"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template years_duration</fo:block></fo:block><fo:block space-after="1em">Class template years_duration <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">additional duration type that represents a logical year </fo:block></fo:block><fo:block>boost::date_time::years_duration</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id449378"><fo:block/><fo:block id="id449380" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> base_config&gt; 
<fo:inline font-weight="bold">class</fo:inline> years_duration {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="years_durationconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id384626-bb">years_duration</fo:basic-link>(int_rep);
&#xA0;&#xA0;<fo:basic-link internal-destination="id361758-bb">years_duration</fo:basic-link>(special_values);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id385605-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;int_rep <fo:basic-link internal-destination="id393985-bb">number_of_years</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id315159-bb">get_neg_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id313879-bb">get_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id384274-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> years_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id309524-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> years_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;years_type <fo:basic-link internal-destination="id419775-bb"><fo:inline font-weight="bold">operator</fo:inline>+</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> years_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;years_type &amp; <fo:basic-link internal-destination="id313907-bb"><fo:inline font-weight="bold">operator</fo:inline>+=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> years_type &amp;) ;
&#xA0;&#xA0;years_type <fo:basic-link internal-destination="id350790-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> years_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;years_type &amp; <fo:basic-link internal-destination="id364663-bb"><fo:inline font-weight="bold">operator</fo:inline>-=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> years_type &amp;) ;
&#xA0;&#xA0;years_type <fo:basic-link internal-destination="id392331-bb"><fo:inline font-weight="bold">operator</fo:inline> *</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> int_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;years_type &amp; <fo:basic-link internal-destination="id377613-bb"><fo:inline font-weight="bold">operator</fo:inline> *=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> int_type) ;
&#xA0;&#xA0;years_type <fo:basic-link internal-destination="id403111-bb"><fo:inline font-weight="bold">operator</fo:inline>/</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> int_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;years_type &amp; <fo:basic-link internal-destination="id409630-bb"><fo:inline font-weight="bold">operator</fo:inline>/=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> int_type) ;
&#xA0;&#xA0;months_type <fo:basic-link internal-destination="id434328-bb"><fo:inline font-weight="bold">operator</fo:inline>+</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> months_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;months_type <fo:basic-link internal-destination="id341039-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> months_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id449895"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A logical year enables things like: "date(2002,Mar,2) + years(2) -&gt; 2004-Mar-2". If the date is a last day-of-the-month, the result will also be a last-day-of-the-month (ie date(2001-Feb-28) + years(3) -&gt; 2004-Feb-29). </fo:block><fo:block id="id449910"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">years_duration construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="years_durationconstruct-copy-destruct"/><fo:inline font-family="monospace">years_duration</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id449926" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id449932" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id449934" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id384626-bb"/>years_duration(int_rep num);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id449949" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id449951" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id361758-bb"/>years_duration(special_values sv);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id449964"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">years_duration public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id385605-bb"/><fo:inline font-family="monospace">years_duration</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id449979" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id449985" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id449987" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_rep <fo:wrapper id="id393985-bb"/>number_of_years() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450011" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450013" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id315159-bb"/>get_neg_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">returns a negative duration </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450047" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450049" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id313879-bb"/>get_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450079" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450082" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id384274-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> years_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450120" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450123" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id309524-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> years_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450162" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450164" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">years_type <fo:wrapper id="id419775-bb"/><fo:inline font-weight="bold">operator</fo:inline>+(<fo:inline font-weight="bold">const</fo:inline> years_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450200" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450202" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">years_type &amp; <fo:wrapper id="id313907-bb"/><fo:inline font-weight="bold">operator</fo:inline>+=(<fo:inline font-weight="bold">const</fo:inline> years_type &amp; rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450232" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450234" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">years_type <fo:wrapper id="id350790-bb"/><fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> years_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450270" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450272" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">years_type &amp; <fo:wrapper id="id364663-bb"/><fo:inline font-weight="bold">operator</fo:inline>-=(<fo:inline font-weight="bold">const</fo:inline> years_type &amp; rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450301" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450303" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">years_type <fo:wrapper id="id392331-bb"/><fo:inline font-weight="bold">operator</fo:inline> *(<fo:inline font-weight="bold">const</fo:inline> int_type rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450338" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450341" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">years_type &amp; <fo:wrapper id="id377613-bb"/><fo:inline font-weight="bold">operator</fo:inline> *=(<fo:inline font-weight="bold">const</fo:inline> int_type rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450371" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450373" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">years_type <fo:wrapper id="id403111-bb"/><fo:inline font-weight="bold">operator</fo:inline>/(<fo:inline font-weight="bold">const</fo:inline> int_type rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450408" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>13.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450411" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">years_type &amp; <fo:wrapper id="id409630-bb"/><fo:inline font-weight="bold">operator</fo:inline>/=(<fo:inline font-weight="bold">const</fo:inline> int_type rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450440" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>14.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450442" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type <fo:wrapper id="id434328-bb"/><fo:inline font-weight="bold">operator</fo:inline>+(<fo:inline font-weight="bold">const</fo:inline> months_type &amp; m) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450478" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>15.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450480" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">months_type <fo:wrapper id="id341039-bb"/><fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> months_type &amp; m) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id383059"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/date_format_simple.hpp">boost/date_time/date_format_simple.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id450532" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="simple_format">simple_format</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id375649-bb">simple_format</fo:basic-link>&lt;<fo:inline font-weight="bold">wchar_t</fo:inline>&gt;;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="simple_format"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template simple_format</fo:block></fo:block><fo:block space-after="1em">Class template simple_format <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class to provide simple basic formatting rules. </fo:block></fo:block><fo:block>boost::date_time::simple_format</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id450630"><fo:block/><fo:block id="id450631" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
<fo:inline font-weight="bold">class</fo:inline> simple_format {
<fo:inline font-weight="bold">public</fo:inline>:

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id393016-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT * <fo:basic-link internal-destination="id432651-bb">not_a_date</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT * <fo:basic-link internal-destination="id402517-bb">pos_infinity</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT * <fo:basic-link internal-destination="id298242-bb">neg_infinity</fo:basic-link>() ;
&#xA0;&#xA0;month_format_spec <fo:basic-link internal-destination="id299304-bb">month_format</fo:basic-link>() ;
&#xA0;&#xA0;ymd_order_spec <fo:basic-link internal-destination="id346525-bb">date_order</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id388108-bb">has_date_sep_chars</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id400586-bb">year_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id340229-bb">month_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id322609-bb">day_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id377034-bb">hour_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id342079-bb">minute_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id314651-bb">second_sep_char</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id450859"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id450863"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">simple_format public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id393016-bb"/><fo:inline font-family="monospace">simple_format</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id450878" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id450884" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450886" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> charT * <fo:wrapper id="id432651-bb"/>not_a_date() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">String used printed is date is invalid. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450912" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450914" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> charT * <fo:wrapper id="id402517-bb"/>pos_infinity() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">String used to for positive infinity value. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450941" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450943" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> charT * <fo:wrapper id="id298242-bb"/>neg_infinity() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">String used to for positive infinity value. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450969" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450972" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_format_spec <fo:wrapper id="id299304-bb"/>month_format() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Describe month format. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id450992" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id450995" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">ymd_order_spec <fo:wrapper id="id346525-bb"/>date_order() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451012" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451014" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id388108-bb"/>has_date_sep_chars() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This format uses '-' to separate date elements. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451039" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451042" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id400586-bb"/>year_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Char to sep? </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451061" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451063" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id340229-bb"/>month_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char between year-month </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451084" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451086" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id322609-bb"/>day_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Char to separate month-day. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451107" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451109" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id377034-bb"/>hour_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char between date-hours </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451130" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451132" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id342079-bb"/>minute_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char between hour and minute </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451152" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451155" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id314651-bb"/>second_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char for second </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id451175"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Specializations</fo:marker><fo:block font-size="10pt">Specializations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id451178" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id451180" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="id375649-bb">Class simple_format&lt;wchar_t&gt;</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id375649-bb"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class simple_format&lt;wchar_t&gt;</fo:block></fo:block><fo:block space-after="1em">Class simple_format&lt;wchar_t&gt; <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specialization of formmating rules for wchar_t. </fo:block></fo:block><fo:block>boost::date_time::simple_format&lt;wchar_t&gt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id451212"><fo:block/><fo:block id="id451213" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> simple_format&lt;<fo:inline font-weight="bold">wchar_t</fo:inline>&gt; {
<fo:inline font-weight="bold">public</fo:inline>:

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id417252-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:basic-link internal-destination="id445896-bb">not_a_date</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:basic-link internal-destination="id336577-bb">pos_infinity</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:basic-link internal-destination="id298755-bb">neg_infinity</fo:basic-link>() ;
&#xA0;&#xA0;month_format_spec <fo:basic-link internal-destination="id395190-bb">month_format</fo:basic-link>() ;
&#xA0;&#xA0;ymd_order_spec <fo:basic-link internal-destination="id367689-bb">date_order</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id425145-bb">has_date_sep_chars</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id285721-bb">year_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id395132-bb">month_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id385336-bb">day_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id320379-bb">hour_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id411507-bb">minute_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id360282-bb">second_sep_char</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id451475"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id451479"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">simple_format public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id417252-bb"/><fo:inline font-family="monospace">simple_format</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id451494" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id451501" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451503" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:wrapper id="id445896-bb"/>not_a_date() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">String used printed is date is invalid. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451535" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451537" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:wrapper id="id336577-bb"/>pos_infinity() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">String used to for positive infinity value. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451570" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451572" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:wrapper id="id298755-bb"/>neg_infinity() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">String used to for positive infinity value. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451604" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451606" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_format_spec <fo:wrapper id="id395190-bb"/>month_format() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Describe month format. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451627" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451629" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">ymd_order_spec <fo:wrapper id="id367689-bb"/>date_order() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451646" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451649" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id425145-bb"/>has_date_sep_chars() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This format uses '-' to separate date elements. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451674" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451676" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id285721-bb"/>year_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Char to sep? </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451700" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451702" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id395132-bb"/>month_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char between year-month </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451726" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451729" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id385336-bb"/>day_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Char to separate month-day. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451752" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451755" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id320379-bb"/>hour_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char between date-hours </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451779" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451781" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id411507-bb"/>minute_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char between hour and minute </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id451806" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id451808" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id360282-bb"/>second_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char for second </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id382856"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/date_formatting.hpp">boost/date_time/date_formatting.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id451848" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> month_type, <fo:inline font-weight="bold">typename</fo:inline> format_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="month_formatter">month_formatter</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ymd_type, <fo:inline font-weight="bold">typename</fo:inline> format_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="ymd_formatter">ymd_formatter</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> format_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="date_formatter">date_formatter</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="month_formatter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template month_formatter</fo:block></fo:block><fo:block space-after="1em">Class template month_formatter <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Formats a month as as string into an ostream. </fo:block></fo:block><fo:block>boost::date_time::month_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id452038"><fo:block/><fo:block id="id452039" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> month_type, <fo:inline font-weight="bold">typename</fo:inline> format_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
<fo:inline font-weight="bold">class</fo:inline> month_formatter {
<fo:inline font-weight="bold">public</fo:inline>:

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id421978-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;std::basic_ostream&lt; charT &gt; &amp; 
&#xA0;&#xA0;<fo:basic-link internal-destination="id284106-bb">format_month</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> month_type &amp;, std::basic_ostream&lt; charT &gt; &amp;) ;
&#xA0;&#xA0;std::ostream &amp; <fo:basic-link internal-destination="id364013-bb">format_month</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> month_type &amp;, std::ostream &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id452145"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id452149"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">month_formatter public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id421978-bb"/><fo:inline font-family="monospace">month_formatter</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id452164" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id452170" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id452172" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::basic_ostream&lt; charT &gt; &amp; 
<fo:wrapper id="id284106-bb"/>format_month(<fo:inline font-weight="bold">const</fo:inline> month_type &amp; month, std::basic_ostream&lt; charT &gt; &amp; os) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Formats a month as as string into an ostream. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This function demands that month_type provide functions for converting to short and long strings if that capability is used. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id452205" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id452208" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::ostream &amp; <fo:wrapper id="id364013-bb"/>format_month(<fo:inline font-weight="bold">const</fo:inline> month_type &amp; month, std::ostream &amp; os) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Formats a month as as string into an ostream. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This function demands that month_type provide functions for converting to short and long strings if that capability is used. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ymd_formatter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template ymd_formatter</fo:block></fo:block><fo:block space-after="1em">Class template ymd_formatter <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convert ymd to a standard string formatting policies. </fo:block></fo:block><fo:block>boost::date_time::ymd_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id452262"><fo:block/><fo:block id="id452264" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ymd_type, <fo:inline font-weight="bold">typename</fo:inline> format_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
<fo:inline font-weight="bold">class</fo:inline> ymd_formatter {
<fo:inline font-weight="bold">public</fo:inline>:

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id403200-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;std::basic_string&lt; charT &gt; <fo:basic-link internal-destination="id320904-bb">ymd_to_string</fo:basic-link>(ymd_type) ;
&#xA0;&#xA0;std::string <fo:basic-link internal-destination="id331352-bb">ymd_to_string</fo:basic-link>(ymd_type) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id452355"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id452359"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">ymd_formatter public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id403200-bb"/><fo:inline font-family="monospace">ymd_formatter</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id452374" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id452380" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id452383" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::basic_string&lt; charT &gt; <fo:wrapper id="id320904-bb"/>ymd_to_string(ymd_type ymd) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convert ymd to a standard string formatting policies. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is standard code for handling date formatting with year-month-day based date information. This function uses the format_type to control whether the string will contain separator characters, and if so what the character will be. In addtion, it can format the month as either an integer or a string as controled by the formatting policy </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id452413" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id452415" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::string <fo:wrapper id="id331352-bb"/>ymd_to_string(ymd_type ymd) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convert ymd to a standard string formatting policies. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is standard code for handling date formatting with year-month-day based date information. This function uses the format_type to control whether the string will contain separator characters, and if so what the character will be. In addtion, it can format the month as either an integer or a string as controled by the formatting policy </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="date_formatter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template date_formatter</fo:block></fo:block><fo:block space-after="1em">Class template date_formatter <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convert a date to string using format policies. </fo:block></fo:block><fo:block>boost::date_time::date_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id452466"><fo:block/><fo:block id="id452467" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> format_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
<fo:inline font-weight="bold">class</fo:inline> date_formatter {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::basic_string&lt; charT &gt; string_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id408662-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;string_type <fo:basic-link internal-destination="id298278-bb">date_to_string</fo:basic-link>(date_type) ;
&#xA0;&#xA0;std::string <fo:basic-link internal-destination="id392359-bb">date_to_string</fo:basic-link>(date_type) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id452571"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id452575"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date_formatter public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id408662-bb"/><fo:inline font-family="monospace">date_formatter</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id452590" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id452596" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id452599" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">string_type <fo:wrapper id="id298278-bb"/>date_to_string(date_type d) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convert to a date to standard string using format policies. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id452621" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id452623" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::string <fo:wrapper id="id392359-bb"/>date_to_string(date_type d) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convert to a date to standard string using format policies. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id297925"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/date_formatting_limited.hpp">boost/date_time/date_formatting_limited.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id452660" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;}
}</fo:block></fo:block><fo:block id="id301482"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/date_formatting_locales.hpp">boost/date_time/date_formatting_locales.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id452694" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> facet_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="ostream_month_formatter">ostream_month_formatter</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> weekday_type, <fo:inline font-weight="bold">typename</fo:inline> facet_type, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="ostream_weekday_formatter">ostream_weekday_formatter</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ymd_type, <fo:inline font-weight="bold">typename</fo:inline> facet_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="ostream_ymd_formatter">ostream_ymd_formatter</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> facet_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="ostream_date_formatter">ostream_date_formatter</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="ostream_month_formatter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template ostream_month_formatter</fo:block></fo:block><fo:block space-after="1em">Class template ostream_month_formatter <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Formats a month as as string into an ostream. </fo:block></fo:block><fo:block>boost::date_time::ostream_month_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id452932"><fo:block/><fo:block id="id452933" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> facet_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
<fo:inline font-weight="bold">class</fo:inline> ostream_month_formatter {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> facet_type::month_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_type;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::basic_ostream&lt; charT &gt; ostream_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id419858-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id307465-bb">format_month</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> month_type &amp;, ostream_type &amp;, <fo:inline font-weight="bold">const</fo:inline> facet_type &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id453042"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id453046"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">ostream_month_formatter public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id419858-bb"/><fo:inline font-family="monospace">ostream_month_formatter</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id453062" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id453068" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id453070" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id307465-bb"/>format_month(<fo:inline font-weight="bold">const</fo:inline> month_type &amp; month, ostream_type &amp; os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> facet_type &amp; f) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Formats a month as as string into an output iterator. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ostream_weekday_formatter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template ostream_weekday_formatter</fo:block></fo:block><fo:block space-after="1em">Class template ostream_weekday_formatter <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Formats a weekday. </fo:block></fo:block><fo:block>boost::date_time::ostream_weekday_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id453132"><fo:block/><fo:block id="id453133" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> weekday_type, <fo:inline font-weight="bold">typename</fo:inline> facet_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
<fo:inline font-weight="bold">class</fo:inline> ostream_weekday_formatter {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> facet_type::month_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_type;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::basic_ostream&lt; charT &gt; ostream_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id430414-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id428024-bb">format_weekday</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> weekday_type &amp;, ostream_type &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> facet_type &amp;, <fo:inline font-weight="bold">bool</fo:inline>) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id453256"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id453260"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">ostream_weekday_formatter public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id430414-bb"/><fo:inline font-family="monospace">ostream_weekday_formatter</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id453275" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id453281" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id453284" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id428024-bb"/>format_weekday(<fo:inline font-weight="bold">const</fo:inline> weekday_type &amp; wd, ostream_type &amp; os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> facet_type &amp; f, <fo:inline font-weight="bold">bool</fo:inline> as_long_string) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Formats a month as as string into an output iterator. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ostream_ymd_formatter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template ostream_ymd_formatter</fo:block></fo:block><fo:block space-after="1em">Class template ostream_ymd_formatter <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convert ymd to a standard string formatting policies. </fo:block></fo:block><fo:block>boost::date_time::ostream_ymd_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id453352"><fo:block/><fo:block id="id453353" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ymd_type, <fo:inline font-weight="bold">typename</fo:inline> facet_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
<fo:inline font-weight="bold">class</fo:inline> ostream_ymd_formatter {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> ymd_type::month_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="ostream_month_formatter">ostream_month_formatter</fo:basic-link>&lt; facet_type, charT &gt; month_formatter_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::basic_ostream&lt; charT &gt;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ostream_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::basic_string&lt; charT &gt;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; foo_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id401924-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id376516-bb">ymd_put</fo:basic-link>(ymd_type, ostream_type &amp;, <fo:inline font-weight="bold">const</fo:inline> facet_type &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id453491"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id453495"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">ostream_ymd_formatter public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id401924-bb"/><fo:inline font-family="monospace">ostream_ymd_formatter</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id453511" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id453516" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id453519" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id376516-bb"/>ymd_put(ymd_type ymd, ostream_type &amp; os, <fo:inline font-weight="bold">const</fo:inline> facet_type &amp; f) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convert ymd to a standard string formatting policies. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is standard code for handling date formatting with year-month-day based date information. This function uses the format_type to control whether the string will contain separator characters, and if so what the character will be. In addtion, it can format the month as either an integer or a string as controled by the formatting policy </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ostream_date_formatter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template ostream_date_formatter</fo:block></fo:block><fo:block space-after="1em">Class template ostream_date_formatter <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convert a date to string using format policies. </fo:block></fo:block><fo:block>boost::date_time::ostream_date_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id453583"><fo:block/><fo:block id="id453584" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> facet_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
<fo:inline font-weight="bold">class</fo:inline> ostream_date_formatter {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::basic_ostream&lt; charT &gt; ostream_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::ymd_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ymd_type;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id333524-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id369440-bb">date_put</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, ostream_type &amp;, <fo:inline font-weight="bold">const</fo:inline> facet_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id355202-bb">date_put</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, ostream_type &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id453723"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id453727"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">ostream_date_formatter public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id333524-bb"/><fo:inline font-family="monospace">ostream_date_formatter</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id453742" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id453748" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id453751" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id369440-bb"/>date_put(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d, ostream_type &amp; os, <fo:inline font-weight="bold">const</fo:inline> facet_type &amp; f) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Put date into an ostream. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id453790" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id453792" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id355202-bb"/>date_put(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d, ostream_type &amp; os) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Put date into an ostream. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id360638"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/date_generators.hpp">boost/date_time/date_generators.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Definition and implementation of date algorithm templates</fo:block><fo:block id="id453844" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="year_based_generator">year_based_generator</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="partial_date">partial_date</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="nth_kday_of_month">nth_kday_of_month</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="first_kday_of_month">first_kday_of_month</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="last_kday_of_month">last_kday_of_month</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="first_kday_after">first_kday_after</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="first_kday_before">first_kday_before</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Returns nth arg as string. 1 -&gt; "first", 2 -&gt; "second", max is 5. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;BOOST_DATE_TIME_DECL <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:wrapper id="nth_as_str"/>nth_as_str(<fo:inline font-weight="bold">int</fo:inline> n);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> weekday_type&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;date_type::duration_type 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="days_until_weekday">days_until_weekday</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">const</fo:inline> weekday_type &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> weekday_type&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;date_type::duration_type 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="days_before_weekday">days_before_weekday</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">const</fo:inline> weekday_type &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> weekday_type&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;date_type <fo:basic-link internal-destination="next_weekday">next_weekday</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">const</fo:inline> weekday_type &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> weekday_type&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;date_type <fo:basic-link internal-destination="previous_weekday">previous_weekday</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">const</fo:inline> weekday_type &amp;);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="year_based_generator"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template year_based_generator</fo:block></fo:block><fo:block space-after="1em">Class template year_based_generator <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Base class for all generators that take a year and produce a date. </fo:block></fo:block><fo:block>boost::date_time::year_based_generator</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id454327"><fo:block/><fo:block id="id454328" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> year_based_generator {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::calendar_type calendar_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::year_type year_type;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="year_based_generatorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id370988-bb">year_based_generator</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id370991-bb">~year_based_generator</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id313666-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> date_type <fo:basic-link internal-destination="id317122-bb">get_date</fo:basic-link>(year_type) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id454450"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This class is a base class for polymorphic function objects that take a year and produce a concrete date. 
</fo:block><fo:block id="id454458"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">year_based_generator construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="year_based_generatorconstruct-copy-destruct"/><fo:inline font-family="monospace">year_based_generator</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id454474" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id454480" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id454483" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id370988-bb"/>year_based_generator();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id454496" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id454499" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id370991-bb"/>~year_based_generator();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id454512"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">year_based_generator public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id313666-bb"/><fo:inline font-family="monospace">year_based_generator</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id454528" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id454533" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id454536" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> date_type <fo:wrapper id="id317122-bb"/>get_date(year_type y) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="partial_date"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template partial_date</fo:block></fo:block><fo:block space-after="1em">Class template partial_date <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Generates a date by applying the year to the given month and day. </fo:block></fo:block><fo:block>boost::date_time::partial_date</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id454587"><fo:block/><fo:block id="id454588" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> partial_date
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::date_time::year_based_generator&lt; date_type &gt;
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::calendar_type&#xA0;&#xA0;&#xA0; calendar_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::day_type&#xA0;&#xA0;&#xA0;&#xA0; day_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::month_type&#xA0;&#xA0; month_type;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::year_type&#xA0;&#xA0;&#xA0; year_type;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type&#xA0;&#xA0;&#xA0; duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> duration_type::duration_rep duration_rep;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="partial_dateconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id316311-bb">partial_date</fo:basic-link>(day_type, month_type);
&#xA0;&#xA0;<fo:basic-link internal-destination="id310209-bb">partial_date</fo:basic-link>(duration_rep);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id308312-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id373710-bb">get_date</fo:basic-link>(year_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id405396-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(year_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id318728-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="partial_date">partial_date</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id395915-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="partial_date">partial_date</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;month_type <fo:basic-link internal-destination="id383216-bb">month</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;day_type <fo:basic-link internal-destination="id399080-bb">day</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id454896"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Example usage: <fo:block id="id454902" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">    partial_date pd(1, Jan);
    partial_date pd2(70);
    date d = pd.get_date(2002); //2002-Jan-01
    date d2 = pd2.get_date(2002); //2002-Mar-10
</fo:block></fo:block><fo:block id="id454910"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">partial_date construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="partial_dateconstruct-copy-destruct"/><fo:inline font-family="monospace">partial_date</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id454926" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id454932" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id454934" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id316311-bb"/>partial_date(day_type d, month_type m);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id454948" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id454950" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id310209-bb"/>partial_date(duration_rep days);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Partial date created from number of days into year. Range 1-366. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Allowable values range from 1 to 366. 1=Jan1, 366=Dec31. If argument exceeds range, partial_date will be created with closest in-range value. 60 will always be Feb29, if get_date() is called with a non-leap year an exception will be thrown </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id454974"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">partial_date public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id308312-bb"/><fo:inline font-family="monospace">partial_date</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id454989" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id454995" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id454998" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id373710-bb"/>get_date(year_type y) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return a concrete date when provided with a year specific year. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Will throw an 'invalid_argument' exception if a partial_date object, instantiated with Feb-29, has get_date called with a non-leap year. Example: <fo:block id="id455031" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"> partial_date pd(29, Feb);
 pd.get_date(2003); // throws invalid_argument exception
 pg.get_date(2000); // returns 2000-2-29
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id455038" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id455040" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id405396-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(year_type y) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id455069" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id455071" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id318728-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="partial_date">partial_date</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id455118" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id455120" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id395915-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="partial_date">partial_date</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id455167" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id455169" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_type <fo:wrapper id="id383216-bb"/>month() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id455193" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id455195" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_type <fo:wrapper id="id399080-bb"/>day() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="nth_kday_of_month"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template nth_kday_of_month</fo:block></fo:block><fo:block space-after="1em">Class template nth_kday_of_month <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Useful generator functor for finding holidays. </fo:block></fo:block><fo:block>boost::date_time::nth_kday_of_month</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id455241"><fo:block/><fo:block id="id455242" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> nth_kday_of_month
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::date_time::year_based_generator&lt; date_type &gt;
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::calendar_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; calendar_type;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::day_of_week_type day_of_week_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::month_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::year_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; year_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; duration_type;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="nth_kday_of_monthconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id356024-bb">nth_kday_of_month</fo:basic-link>(week_num, day_of_week_type, month_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id309002-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id323169-bb">get_date</fo:basic-link>(year_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;month_type <fo:basic-link internal-destination="id332788-bb">month</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;week_num <fo:basic-link internal-destination="id390571-bb">nth_week</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;day_of_week_type <fo:basic-link internal-destination="id413765-bb">day_of_week</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:basic-link internal-destination="id428410-bb">nth_week_as_str</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id455477"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Based on the idea in Cal. Calc. for finding holidays that are the 'first Monday of September'. When instantiated with 'fifth' kday of month, the result will be the last kday of month which can be the fourth or fifth depending on the structure of the month.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The algorithm here basically guesses for the first day of the month. Then finds the first day of the correct type. That is, if the first of the month is a Tuesday and it needs Wenesday then we simply increment by a day and then we can add the length of a week until we get to the 'nth kday'. There are probably more efficient algorithms based on using a mod 7, but this one works reasonably well for basic applications. </fo:block><fo:block id="id455498"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">nth_kday_of_month construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="nth_kday_of_monthconstruct-copy-destruct"/><fo:inline font-family="monospace">nth_kday_of_month</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id455514" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id455520" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id455523" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id356024-bb"/>nth_kday_of_month(week_num week_no, day_of_week_type dow, month_type m);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id455538"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">nth_kday_of_month public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id309002-bb"/><fo:inline font-family="monospace">nth_kday_of_month</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id455553" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id455559" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id455561" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id323169-bb"/>get_date(year_type y) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return a concrete date when provided with a year specific year. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id455589" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id455592" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_type <fo:wrapper id="id332788-bb"/>month() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id455615" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id455617" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">week_num <fo:wrapper id="id390571-bb"/>nth_week() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id455641" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id455643" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_of_week_type <fo:wrapper id="id413765-bb"/>day_of_week() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id455667" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id455670" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:wrapper id="id428410-bb"/>nth_week_as_str() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="first_kday_of_month"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template first_kday_of_month</fo:block></fo:block><fo:block space-after="1em">Class template first_kday_of_month <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Useful generator functor for finding holidays and daylight savings. </fo:block></fo:block><fo:block>boost::date_time::first_kday_of_month</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id455728"><fo:block/><fo:block id="id455729" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> first_kday_of_month
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::date_time::year_based_generator&lt; date_type &gt;
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::calendar_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; calendar_type;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::day_of_week_type day_of_week_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::month_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::year_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; year_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; duration_type;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="first_kday_of_monthconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id333319-bb">first_kday_of_month</fo:basic-link>(day_of_week_type, month_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id390234-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id348408-bb">get_date</fo:basic-link>(year_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;month_type <fo:basic-link internal-destination="id308780-bb">month</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;day_of_week_type <fo:basic-link internal-destination="id321194-bb">day_of_week</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id455910"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Similar to nth_kday_of_month, but requires less paramters </fo:block><fo:block id="id455918"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">first_kday_of_month construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="first_kday_of_monthconstruct-copy-destruct"/><fo:inline font-family="monospace">first_kday_of_month</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id455935" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id455941" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id455943" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id333319-bb"/>first_kday_of_month(day_of_week_type dow, month_type m);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specify the first 'Sunday' in 'April' spec. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id455962" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id455968" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>dow</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The day of week, eg: Sunday, Monday, etc </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id455977" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>m</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The month of the year, eg: Jan, Feb, Mar, etc </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id455985"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">first_kday_of_month public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id390234-bb"/><fo:inline font-family="monospace">first_kday_of_month</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id456001" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id456006" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id456009" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id348408-bb"/>get_date(year_type year) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return a concrete date when provided with a year specific year. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id456036" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id456039" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_type <fo:wrapper id="id308780-bb"/>month() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id456062" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id456065" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_of_week_type <fo:wrapper id="id321194-bb"/>day_of_week() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="last_kday_of_month"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template last_kday_of_month</fo:block></fo:block><fo:block space-after="1em">Class template last_kday_of_month <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calculate something like Last Sunday of January. </fo:block></fo:block><fo:block>boost::date_time::last_kday_of_month</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id456111"><fo:block/><fo:block id="id456112" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> last_kday_of_month
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::date_time::year_based_generator&lt; date_type &gt;
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::calendar_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; calendar_type;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::day_of_week_type day_of_week_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::month_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::year_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; year_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; duration_type;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="last_kday_of_monthconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id371752-bb">last_kday_of_month</fo:basic-link>(day_of_week_type, month_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id404786-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id314847-bb">get_date</fo:basic-link>(year_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;month_type <fo:basic-link internal-destination="id396820-bb">month</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;day_of_week_type <fo:basic-link internal-destination="id334752-bb">day_of_week</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id456294"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Useful generator functor for finding holidays and daylight savings Get the last day of the month and then calculate the difference to the last previous day. 
</fo:block><fo:block id="id456303"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">last_kday_of_month construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="last_kday_of_monthconstruct-copy-destruct"/><fo:inline font-family="monospace">last_kday_of_month</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id456320" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id456326" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id456329" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id371752-bb"/>last_kday_of_month(day_of_week_type dow, month_type m);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specify the date spec like last 'Sunday' in 'April' spec. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id456348" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id456354" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>dow</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The day of week, eg: Sunday, Monday, etc </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id456362" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>m</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The month of the year, eg: Jan, Feb, Mar, etc </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id456370"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">last_kday_of_month public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id404786-bb"/><fo:inline font-family="monospace">last_kday_of_month</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id456386" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id456392" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id456394" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id314847-bb"/>get_date(year_type year) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return a concrete date when provided with a year specific year. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id456422" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id456424" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_type <fo:wrapper id="id396820-bb"/>month() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id456448" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id456450" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_of_week_type <fo:wrapper id="id334752-bb"/>day_of_week() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="first_kday_after"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template first_kday_after</fo:block></fo:block><fo:block space-after="1em">Class template first_kday_after <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calculate something like "First Sunday after Jan 1,2002. </fo:block></fo:block><fo:block>boost::date_time::first_kday_after</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id456496"><fo:block/><fo:block id="id456497" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> first_kday_after {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::calendar_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; calendar_type;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::day_of_week_type day_of_week_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; duration_type;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="first_kday_afterconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id418486-bb">first_kday_after</fo:basic-link>(day_of_week_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id412058-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id393889-bb">get_date</fo:basic-link>(date_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;day_of_week_type <fo:basic-link internal-destination="id300926-bb">day_of_week</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id456635"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Date generator that takes a date and finds kday after <fo:block id="id456642" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">     typedef boost::date_time::first_kday_after&lt;date&gt; firstkdayafter;
     firstkdayafter fkaf(Monday);
     fkaf.get_date(date(2002,Feb,1));
</fo:block></fo:block><fo:block id="id456654"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">first_kday_after construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="first_kday_afterconstruct-copy-destruct"/><fo:inline font-family="monospace">first_kday_after</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id456669" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id456676" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id456678" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id418486-bb"/>first_kday_after(day_of_week_type dow);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id456691"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">first_kday_after public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id412058-bb"/><fo:inline font-family="monospace">first_kday_after</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id456707" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id456712" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id456715" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id393889-bb"/>get_date(date_type start_day) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return next kday given. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id456742" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id456745" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_of_week_type <fo:wrapper id="id300926-bb"/>day_of_week() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="first_kday_before"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template first_kday_before</fo:block></fo:block><fo:block space-after="1em">Class template first_kday_before <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calculate something like "First Sunday before Jan 1,2002. </fo:block></fo:block><fo:block>boost::date_time::first_kday_before</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id456791"><fo:block/><fo:block id="id456792" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> first_kday_before {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::calendar_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; calendar_type;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> calendar_type::day_of_week_type day_of_week_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; duration_type;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="first_kday_beforeconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id398733-bb">first_kday_before</fo:basic-link>(day_of_week_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id391469-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id364398-bb">get_date</fo:basic-link>(date_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;day_of_week_type <fo:basic-link internal-destination="id412916-bb">day_of_week</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id456929"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Date generator that takes a date and finds kday after <fo:block id="id456937" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">     typedef boost::date_time::first_kday_before&lt;date&gt; firstkdaybefore;
     firstkdaybefore fkbf(Monday);
     fkbf.get_date(date(2002,Feb,1));
</fo:block></fo:block><fo:block id="id456948"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">first_kday_before construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="first_kday_beforeconstruct-copy-destruct"/><fo:inline font-family="monospace">first_kday_before</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id456965" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id456971" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id456974" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id398733-bb"/>first_kday_before(day_of_week_type dow);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id456988"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">first_kday_before public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id391469-bb"/><fo:inline font-family="monospace">first_kday_before</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id457003" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id457009" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id457011" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id364398-bb"/>get_date(date_type start_day) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return next kday given. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id457039" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id457041" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_of_week_type <fo:wrapper id="id412916-bb"/>day_of_week() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="days_until_weekday"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function template days_until_weekday</fo:block></fo:block><fo:block space-after="1em">Function template days_until_weekday <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calculates the number of days until the next weekday. </fo:block></fo:block><fo:block>boost::date_time::days_until_weekday</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id457087"><fo:block/><fo:block id="id457088" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> weekday_type&gt; 
&#xA0;&#xA0;date_type::duration_type 
&#xA0;&#xA0;days_until_weekday(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d, <fo:inline font-weight="bold">const</fo:inline> weekday_type &amp; wd);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id457133"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calculates the number of days until the next weekday. If the date given falls on a Sunday and the given weekday is Tuesday the result will be 2 days </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="days_before_weekday"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function template days_before_weekday</fo:block></fo:block><fo:block space-after="1em">Function template days_before_weekday <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calculates the number of days since the previous weekday. </fo:block></fo:block><fo:block>boost::date_time::days_before_weekday</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id457164"><fo:block/><fo:block id="id457166" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> weekday_type&gt; 
&#xA0;&#xA0;date_type::duration_type 
&#xA0;&#xA0;days_before_weekday(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d, <fo:inline font-weight="bold">const</fo:inline> weekday_type &amp; wd);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id457210"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calculates the number of days since the previous weekday If the date given falls on a Sunday and the given weekday is Tuesday the result will be 5 days. The answer will be a positive number because Tuesday is 5 days before Sunday, not -5 days before. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="next_weekday"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function template next_weekday</fo:block></fo:block><fo:block space-after="1em">Function template next_weekday <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Generates a date object representing the date of the following weekday from the given date. </fo:block></fo:block><fo:block>boost::date_time::next_weekday</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id457243"><fo:block/><fo:block id="id457244" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> weekday_type&gt; 
&#xA0;&#xA0;date_type next_weekday(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d, <fo:inline font-weight="bold">const</fo:inline> weekday_type &amp; wd);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id457287"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Generates a date object representing the date of the following weekday from the given date. If the date given is 2004-May-9 (a Sunday) and the given weekday is Tuesday then the resulting date will be 2004-May-11. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="previous_weekday"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function template previous_weekday</fo:block></fo:block><fo:block space-after="1em">Function template previous_weekday <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Generates a date object representing the date of the previous weekday from the given date. </fo:block></fo:block><fo:block>boost::date_time::previous_weekday</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id457321"><fo:block/><fo:block id="id457322" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> weekday_type&gt; 
&#xA0;&#xA0;date_type previous_weekday(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d, <fo:inline font-weight="bold">const</fo:inline> weekday_type &amp; wd);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id457365"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Generates a date object representing the date of the previous weekday from the given date. If the date given is 2004-May-9 (a Sunday) and the given weekday is Tuesday then the resulting date will be 2004-May-4. </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id391588"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/date_iterator.hpp">boost/date_time/date_iterator.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id457392" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="date_itr_base">date_itr_base</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> offset_functor, <fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="date_itr">date_itr</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An iterator over dates with varying resolution (day, week, month, year, etc). </fo:block></fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:wrapper id="id398366"/>date_resolutions { day, week, months, year, decade, century, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;NumDateResolutions };
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="date_itr_base"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template date_itr_base</fo:block></fo:block><fo:block space-after="1em">Class template date_itr_base <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Base date iterator type. </fo:block></fo:block><fo:block>boost::date_time::date_itr_base</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id457524"><fo:block/><fo:block id="id457525" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> date_itr_base {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type duration_type;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; value_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::input_iterator_tag&#xA0; iterator_category;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="date_itr_baseconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id344839-bb">date_itr_base</fo:basic-link>(date_type);
&#xA0;&#xA0;<fo:basic-link internal-destination="id401221-bb">~date_itr_base</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id405036-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="date_itr_base">date_itr_base</fo:basic-link> &amp; <fo:basic-link internal-destination="id431094-bb"><fo:inline font-weight="bold">operator</fo:inline>++</fo:basic-link>() ;
&#xA0;&#xA0;<fo:basic-link internal-destination="date_itr_base">date_itr_base</fo:basic-link> &amp; <fo:basic-link internal-destination="id399629-bb"><fo:inline font-weight="bold">operator</fo:inline>--</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> duration_type <fo:basic-link internal-destination="id436185-bb">get_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> duration_type <fo:basic-link internal-destination="id389701-bb">get_neg_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id332077-bb"><fo:inline font-weight="bold">operator</fo:inline> *</fo:basic-link>() ;
&#xA0;&#xA0;date_type * <fo:basic-link internal-destination="id314140-bb"><fo:inline font-weight="bold">operator</fo:inline>-&gt;</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id345284-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id329206-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id284811-bb"><fo:inline font-weight="bold">operator</fo:inline>&gt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id424606-bb"><fo:inline font-weight="bold">operator</fo:inline>&gt;=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id437957-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id327763-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id457956"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This class provides the skeleton for the creation of iterators. New and interesting interators can be created by plugging in a new function that derives the next value from the current state. generation of various types of -based information.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Template Parameters</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">date_type</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The date_type is a concrete date_type. The date_type must define a duration_type and a calendar_type. </fo:block><fo:block id="id457984"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date_itr_base construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="date_itr_baseconstruct-copy-destruct"/><fo:inline font-family="monospace">date_itr_base</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id458000" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id458006" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458009" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id344839-bb"/>date_itr_base(date_type d);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id458023" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458025" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id401221-bb"/>~date_itr_base();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id458039"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date_itr_base public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id405036-bb"/><fo:inline font-family="monospace">date_itr_base</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id458053" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id458059" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458061" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="date_itr_base">date_itr_base</fo:basic-link> &amp; <fo:wrapper id="id431094-bb"/><fo:inline font-weight="bold">operator</fo:inline>++() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id458091" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458093" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="date_itr_base">date_itr_base</fo:basic-link> &amp; <fo:wrapper id="id399629-bb"/><fo:inline font-weight="bold">operator</fo:inline>--() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id458122" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458124" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> duration_type <fo:wrapper id="id436185-bb"/>get_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; current) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id458160" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458163" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> duration_type <fo:wrapper id="id389701-bb"/>get_neg_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; current) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id458198" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458201" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id332077-bb"/><fo:inline font-weight="bold">operator</fo:inline> *() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id458223" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458226" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type * <fo:wrapper id="id314140-bb"/><fo:inline font-weight="bold">operator</fo:inline>-&gt;() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id458249" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458251" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id345284-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id458284" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458286" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id329206-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;=(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id458319" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458322" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id284811-bb"/><fo:inline font-weight="bold">operator</fo:inline>&gt;(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id458355" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458357" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id424606-bb"/><fo:inline font-weight="bold">operator</fo:inline>&gt;=(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id458390" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458392" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id437957-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id458426" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458428" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id327763-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="date_itr"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template date_itr</fo:block></fo:block><fo:block space-after="1em">Class template date_itr <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Overrides the base date iterator providing hook for functors. </fo:block></fo:block><fo:block>boost::date_time::date_itr</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id458482"><fo:block/><fo:block id="id458483" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> offset_functor, <fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> date_itr : <fo:inline font-weight="bold">public</fo:inline> boost::date_time::date_itr_base&lt; date_type &gt; {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type duration_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="date_itrconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id312028-bb">date_itr</fo:basic-link>(date_type, <fo:inline font-weight="bold">int</fo:inline> = 1);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id354910-bb">public member functions</fo:basic-link></fo:inline>

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id359787-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> duration_type <fo:basic-link internal-destination="id352233-bb">get_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> duration_type <fo:basic-link internal-destination="id332011-bb">get_neg_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id458659"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id458663"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date_itr construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="date_itrconstruct-copy-destruct"/><fo:inline font-family="monospace">date_itr</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id458679" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id458685" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458688" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id312028-bb"/>date_itr(date_type d, <fo:inline font-weight="bold">int</fo:inline> factor = 1);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id458708"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date_itr public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id354910-bb"/><fo:inline font-family="monospace">date_itr</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id458723" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block><fo:block id="id458729"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date_itr private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id359787-bb"/><fo:inline font-family="monospace">date_itr</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id458744" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id458750" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458752" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> duration_type <fo:wrapper id="id352233-bb"/>get_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; current) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id458788" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id458790" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> duration_type <fo:wrapper id="id332011-bb"/>get_neg_offset(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; current) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id330778"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/date_names_put.hpp">boost/date_time/date_names_put.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id458842" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Config, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="OutputIterator">OutputIterator</fo:basic-link> = std::ostreambuf_iterator&lt;charT&gt; &gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="date_names_put">date_names_put</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Config, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="OutputIterator">OutputIterator</fo:basic-link> = std::ostreambuf_iterator&lt;charT&gt; &gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="all_date_names_put">all_date_names_put</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="date_names_put"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template date_names_put</fo:block></fo:block><fo:block space-after="1em">Class template date_names_put <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Output facet base class for gregorian dates. </fo:block></fo:block><fo:block>boost::date_time::date_names_put</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id459000"><fo:block/><fo:block id="id459001" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Config, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="OutputIterator">OutputIterator</fo:basic-link> = std::ostreambuf_iterator&lt;charT&gt; &gt; 
<fo:inline font-weight="bold">class</fo:inline> date_names_put {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> OutputIterator&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; iter_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> Config::month_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> Config::month_enum&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_enum;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> Config::weekday_enum&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; weekday_enum;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> Config::special_value_enum special_value_enum;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::basic_string&lt; charT &gt; string_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="date_names_putconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id304185-bb">date_names_put</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id399644-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id320180-bb">put_special_value</fo:basic-link>(iter_type &amp;, special_value_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id423164-bb">put_month_short</fo:basic-link>(iter_type &amp;, month_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id353438-bb">put_month_long</fo:basic-link>(iter_type &amp;, month_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id383191-bb">put_weekday_short</fo:basic-link>(iter_type &amp;, weekday_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id410122-bb">put_weekday_long</fo:basic-link>(iter_type &amp;, weekday_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id301508-bb">has_date_sep_chars</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id333490-bb">year_sep_char</fo:basic-link>(iter_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id311451-bb">month_sep_char</fo:basic-link>(iter_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id428372-bb">day_sep_char</fo:basic-link>(iter_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;ymd_order_spec <fo:basic-link internal-destination="id383001-bb">date_order</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;month_format_spec <fo:basic-link internal-destination="id315215-bb">month_format</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id429109-bb">protected member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id394367-bb">do_put_month_short</fo:basic-link>(iter_type &amp;, month_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id336331-bb">do_put_month_long</fo:basic-link>(iter_type &amp;, month_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id376242-bb">do_put_special_value</fo:basic-link>(iter_type &amp;, special_value_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id355888-bb">do_put_weekday_short</fo:basic-link>(iter_type &amp;, weekday_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id308177-bb">do_put_weekday_long</fo:basic-link>(iter_type &amp;, weekday_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id316680-bb">do_has_date_sep_chars</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id355779-bb">do_year_sep_char</fo:basic-link>(iter_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id427885-bb">do_month_sep_char</fo:basic-link>(iter_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id298886-bb">do_day_sep_char</fo:basic-link>(iter_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> ymd_order_spec <fo:basic-link internal-destination="id285473-bb">do_date_order</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> month_format_spec <fo:basic-link internal-destination="id375088-bb">do_month_format</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id363689-bb">put_string</fo:basic-link>(iter_type &amp;, <fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id411598-bb">put_string</fo:basic-link>(iter_type &amp;, <fo:inline font-weight="bold">const</fo:inline> string_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-weight="bold">static</fo:inline> std::locale::id id;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id459834"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This class is a base class for date facets used to localize the names of months and the names of days in the week.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Requirements of Config<fo:list-block id="id459845" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id459846" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>define an enumeration month_enum that enumerates the months. The enumeration should be '1' based eg: Jan==1</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id459852" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>define as_short_string and as_long_string</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">(see langer &amp; kreft p334). </fo:block><fo:block id="id459859"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date_names_put construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="date_names_putconstruct-copy-destruct"/><fo:inline font-family="monospace">date_names_put</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id459876" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id459882" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id459884" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id304185-bb"/>date_names_put();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id459898"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date_names_put public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id399644-bb"/><fo:inline font-family="monospace">date_names_put</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id459913" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id459919" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id459921" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id320180-bb"/>put_special_value(iter_type &amp; oitr, special_value_enum sv) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id459950" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id459952" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id423164-bb"/>put_month_short(iter_type &amp; oitr, month_enum moy) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id459980" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id459982" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id353438-bb"/>put_month_long(iter_type &amp; oitr, month_enum moy) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460010" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460013" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id383191-bb"/>put_weekday_short(iter_type &amp; oitr, weekday_enum wd) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460041" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460043" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id410122-bb"/>put_weekday_long(iter_type &amp; oitr, weekday_enum wd) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460071" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460074" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id301508-bb"/>has_date_sep_chars() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460101" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460103" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id333490-bb"/>year_sep_char(iter_type &amp; oitr) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460131" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460134" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id311451-bb"/>month_sep_char(iter_type &amp; oitr) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char between year-month </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460165" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460167" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id428372-bb"/>day_sep_char(iter_type &amp; oitr) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Char to separate month-day. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460198" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460200" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">ymd_order_spec <fo:wrapper id="id383001-bb"/>date_order() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Determines the order to put the date elements. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460227" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460229" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_format_spec <fo:wrapper id="id315215-bb"/>month_format() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Determines if month is displayed as integer, short or long string. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id460257"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date_names_put protected member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id429109-bb"/><fo:inline font-family="monospace">date_names_put</fo:inline> protected member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id460272" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id460278" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460281" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id394367-bb"/>do_put_month_short(iter_type &amp; oitr, month_enum moy) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Default facet implementation uses month_type defaults. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460319" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460321" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id336331-bb"/>do_put_month_long(iter_type &amp; oitr, month_enum moy) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Default facet implementation uses month_type defaults. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460358" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460361" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> 
<fo:wrapper id="id376242-bb"/>do_put_special_value(iter_type &amp; oitr, special_value_enum sv) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Default facet implementation for special value types. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460399" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460401" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id355888-bb"/>do_put_weekday_short(iter_type &amp; , weekday_enum ) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460435" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460438" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id308177-bb"/>do_put_weekday_long(iter_type &amp; , weekday_enum ) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460472" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460474" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id316680-bb"/>do_has_date_sep_chars() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460508" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460511" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id355779-bb"/>do_year_sep_char(iter_type &amp; oitr) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460545" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460547" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id427885-bb"/>do_month_sep_char(iter_type &amp; oitr) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char between year-month </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460585" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460587" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id298886-bb"/>do_day_sep_char(iter_type &amp; oitr) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Char to separate month-day. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460624" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460627" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> ymd_order_spec <fo:wrapper id="id285473-bb"/>do_date_order() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Default for date order. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460659" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460661" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> month_format_spec <fo:wrapper id="id375088-bb"/>do_month_format() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Default month format. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460692" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460695" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id363689-bb"/>put_string(iter_type &amp; oi, <fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> s) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id460736" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>13.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id460738" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id411598-bb"/>put_string(iter_type &amp; oi, <fo:inline font-weight="bold">const</fo:inline> string_type &amp; s1) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="all_date_names_put"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template all_date_names_put</fo:block></fo:block><fo:block space-after="1em">Class template all_date_names_put <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An date name output facet that takes an array of char* to define strings. </fo:block></fo:block><fo:block>boost::date_time::all_date_names_put</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id460794"><fo:block/><fo:block id="id460796" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Config, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="OutputIterator">OutputIterator</fo:basic-link> = std::ostreambuf_iterator&lt;charT&gt; &gt; 
<fo:inline font-weight="bold">class</fo:inline> all_date_names_put : <fo:inline font-weight="bold">public</fo:inline> boost::date_time::date_names_put&lt; Config, charT, OutputIterator &gt;
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> OutputIterator&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; iter_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> Config::month_enum&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_enum;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> Config::weekday_enum&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; weekday_enum;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> Config::special_value_enum special_value_enum;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="all_date_names_putconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id395726-bb">all_date_names_put</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline>, <fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline>, <fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline>, charT = '-', 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;ymd_order_spec = ymd_order_iso, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;month_format_spec = month_as_short_string);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id330609-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> * <fo:basic-link internal-destination="id432053-bb">get_short_month_names</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> * <fo:basic-link internal-destination="id340176-bb">get_long_month_names</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> * <fo:basic-link internal-destination="id333973-bb">get_special_value_names</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> * <fo:basic-link internal-destination="id349747-bb">get_short_weekday_names</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> * <fo:basic-link internal-destination="id409782-bb">get_long_weekday_names</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id352064-bb">protected member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id423911-bb">do_put_month_short</fo:basic-link>(iter_type &amp;, month_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id393461-bb">do_put_month_long</fo:basic-link>(iter_type &amp;, month_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id363974-bb">do_put_special_value</fo:basic-link>(iter_type &amp;, special_value_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id407194-bb">do_put_weekday_short</fo:basic-link>(iter_type &amp;, weekday_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id360838-bb">do_put_weekday_long</fo:basic-link>(iter_type &amp;, weekday_enum) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id377493-bb">do_month_sep_char</fo:basic-link>(iter_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id401727-bb">do_day_sep_char</fo:basic-link>(iter_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> ymd_order_spec <fo:basic-link internal-destination="id345652-bb">do_date_order</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> month_format_spec <fo:basic-link internal-destination="id290591-bb">do_month_format</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id461448"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id461452"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">all_date_names_put construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="all_date_names_putconstruct-copy-destruct"/><fo:inline font-family="monospace">all_date_names_put</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id461469" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id461475" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id461478" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id395726-bb"/>all_date_names_put(<fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> month_short_names, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> month_long_names, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> special_value_names, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> weekday_short_names, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> weekday_long_names, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;charT separator_char = '-', 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;ymd_order_spec order_spec = ymd_order_iso, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;month_format_spec month_format = month_as_short_string);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id461573"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">all_date_names_put public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id330609-bb"/><fo:inline font-family="monospace">all_date_names_put</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id461588" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id461594" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id461596" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> * <fo:wrapper id="id432053-bb"/>get_short_month_names() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id461632" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id461634" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> * <fo:wrapper id="id340176-bb"/>get_long_month_names() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id461670" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id461672" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> * <fo:wrapper id="id333973-bb"/>get_special_value_names() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id461708" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id461710" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> * <fo:wrapper id="id349747-bb"/>get_short_weekday_names() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id461745" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id461748" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> charT *<fo:inline font-weight="bold">const</fo:inline> * <fo:wrapper id="id409782-bb"/>get_long_weekday_names() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id461783"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">all_date_names_put protected member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id352064-bb"/><fo:inline font-family="monospace">all_date_names_put</fo:inline> protected member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id461798" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id461804" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id461806" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id423911-bb"/>do_put_month_short(iter_type &amp; oitr, month_enum moy) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Generic facet that takes array of chars. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id461844" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id461847" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id393461-bb"/>do_put_month_long(iter_type &amp; oitr, month_enum moy) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Long month names. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id461884" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id461886" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> 
<fo:wrapper id="id363974-bb"/>do_put_special_value(iter_type &amp; oitr, special_value_enum sv) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Special values names. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id461924" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id461926" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id407194-bb"/>do_put_weekday_short(iter_type &amp; oitr, weekday_enum wd) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id461961" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id461963" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id360838-bb"/>do_put_weekday_long(iter_type &amp; oitr, weekday_enum wd) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id461997" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id462000" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id377493-bb"/>do_month_sep_char(iter_type &amp; oitr) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char between year-month </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462037" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id462039" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id401727-bb"/>do_day_sep_char(iter_type &amp; oitr) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Char to separate month-day. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462077" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id462079" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> ymd_order_spec <fo:wrapper id="id345652-bb"/>do_date_order() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Set the date ordering. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462111" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id462113" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> month_format_spec <fo:wrapper id="id290591-bb"/>do_month_format() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Set the date ordering. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id360230"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/dst_rules.hpp">boost/date_time/dst_rules.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Contains template class to provide static dst rule calculations</fo:block><fo:block id="id462165" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type_, <fo:inline font-weight="bold">typename</fo:inline> time_duration_type_&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="dst_calculator">dst_calculator</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> time_duration_type, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> dst_traits&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="dst_calc_engine">dst_calc_engine</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type_, <fo:inline font-weight="bold">typename</fo:inline> time_duration_type_, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> dst_start_offset_minutes = , 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">short</fo:inline> dst_length_minutes = &gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="us_dst_rules">us_dst_rules</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type_, <fo:inline font-weight="bold">typename</fo:inline> time_duration_type_&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="null_dst_rules">null_dst_rules</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:wrapper id="id407365"/>time_is_dst_result { is_not_in_dst, is_in_dst, ambiguous, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;invalid_time_label };
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="dst_calculator"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template dst_calculator</fo:block></fo:block><fo:block space-after="1em">Class template dst_calculator <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Dynamic class used to caluclate dst transition information. </fo:block></fo:block><fo:block>boost::date_time::dst_calculator</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id462398"><fo:block/><fo:block id="id462400" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type_, <fo:inline font-weight="bold">typename</fo:inline> time_duration_type_&gt; 
<fo:inline font-weight="bold">class</fo:inline> dst_calculator {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_duration_type_ time_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type_&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id419715-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_is_dst_result 
&#xA0;&#xA0;<fo:basic-link internal-destination="id364374-bb">process_local_dst_start_day</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, <fo:inline font-weight="bold">long</fo:inline>) ;
&#xA0;&#xA0;time_is_dst_result 
&#xA0;&#xA0;<fo:basic-link internal-destination="id381496-bb">process_local_dst_end_day</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, <fo:inline font-weight="bold">long</fo:inline>) ;
&#xA0;&#xA0;time_is_dst_result 
&#xA0;&#xA0;<fo:basic-link internal-destination="id420187-bb">local_is_dst</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, <fo:inline font-weight="bold">const</fo:inline> date_type &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, <fo:inline font-weight="bold">long</fo:inline>) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id462625"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id462629"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">dst_calculator public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id419715-bb"/><fo:inline font-family="monospace">dst_calculator</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id462643" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id462649" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id462652" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_is_dst_result 
<fo:wrapper id="id364374-bb"/>process_local_dst_start_day(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; time_of_day, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> dst_start_offset_minutes, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">long</fo:inline> dst_length_minutes) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Check the local time offset when on dst start day. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">On this dst transition, the time label between the transition boundary and the boudary + the offset are invalid times. If before the boundary then still not in dst. 

</fo:block><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id462709" provisional-distance-between-starts="24em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id462715" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>dst_length_minutes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Number of minutes to adjust clock forward </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462724" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>dst_start_offset_minutes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Local day offset for start of dst </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462733" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>time_of_day</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Time offset in the day for the local time </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462741" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id462744" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_is_dst_result 
<fo:wrapper id="id381496-bb"/>process_local_dst_end_day(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; time_of_day, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> dst_end_offset_minutes, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">long</fo:inline> dst_length_minutes) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Check the local time offset when on the last day of dst. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the calculation for the DST end day. On that day times prior to the conversion time - dst_length (1 am in US) are still in dst. Times between the above and the switch time are ambiguous. Times after the start_offset are not in dst. 

</fo:block><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id462801" provisional-distance-between-starts="22em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id462808" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>dst_end_offset_minutes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Local time of day for end of dst </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462816" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>time_of_day</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Time offset in the day for the local time </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462825" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id462827" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_is_dst_result 
<fo:wrapper id="id420187-bb"/>local_is_dst(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; current_day, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; time_of_day, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> date_type &amp; dst_start_day, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> dst_start_offset_minutes, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> date_type &amp; dst_end_day, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> dst_end_offset_minutes, <fo:inline font-weight="bold">long</fo:inline> dst_length_minutes) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calculates if the given local time is dst or not. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Determines if the time is really in DST or not. Also checks for invalid and ambiguous. 

</fo:block><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id462917" provisional-distance-between-starts="24em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id462924" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>current_day</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The day to check for dst </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462932" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>dst_end_day</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Ending day of dst for the given locality </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462941" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>dst_end_offset_minutes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Offset within day given in dst for dst boundary (eg 120 for US which is 02:00:00) </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462950" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>dst_length_minutes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Length of dst adjusment (eg: 60 for US) </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462959" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>dst_start_day</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Starting day of dst for the given locality </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462967" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>dst_start_offset_minutes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Offset within day for dst boundary (eg 120 for US which is 02:00:00) </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id462976" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>time_of_day</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Time offset within the day to check </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="dst_calc_engine"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template dst_calc_engine</fo:block></fo:block><fo:block space-after="1em">Class template dst_calc_engine <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Compile-time configurable daylight savings time calculation engine. </fo:block></fo:block><fo:block>boost::date_time::dst_calc_engine</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id463007"><fo:block/><fo:block id="id463008" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> time_duration_type, <fo:inline font-weight="bold">typename</fo:inline> dst_traits&gt; 
<fo:inline font-weight="bold">class</fo:inline> dst_calc_engine {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::year_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; year_type;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::calendar_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; calendar_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="dst_calculator">dst_calculator</fo:basic-link>&lt; date_type, time_duration_type &gt; dstcalc;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id389178-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_is_dst_result 
&#xA0;&#xA0;<fo:basic-link internal-destination="id419922-bb">local_is_dst</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id388399-bb">is_dst_boundary_day</fo:basic-link>(date_type) ;
&#xA0;&#xA0;time_duration_type <fo:basic-link internal-destination="id322866-bb">dst_offset</fo:basic-link>() ;
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id404958-bb">local_dst_start_day</fo:basic-link>(year_type) ;
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id320630-bb">local_dst_end_day</fo:basic-link>(year_type) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id463190"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id463194"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">dst_calc_engine public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id389178-bb"/><fo:inline font-family="monospace">dst_calc_engine</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id463209" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id463215" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id463217" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_is_dst_result 
<fo:wrapper id="id419922-bb"/>local_is_dst(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; td) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calculates if the given local time is dst or not. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Determines if the time is really in DST or not. Also checks for invalid and ambiguous. 
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id463256" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id463259" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id388399-bb"/>is_dst_boundary_day(date_type d) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id463280" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id463283" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type <fo:wrapper id="id322866-bb"/>dst_offset() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The time of day for the dst transition (eg: typically 01:00:00 or 02:00:00). </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id463304" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id463306" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id404958-bb"/>local_dst_start_day(year_type year) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id463324" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id463327" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id320630-bb"/>local_dst_end_day(year_type year) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="us_dst_rules"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template us_dst_rules</fo:block></fo:block><fo:block space-after="1em">Class template us_dst_rules <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Depricated: Class to calculate dst boundaries for US time zones. </fo:block></fo:block><fo:block>boost::date_time::us_dst_rules</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id463366"><fo:block/><fo:block id="id463367" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type_, <fo:inline font-weight="bold">typename</fo:inline> time_duration_type_, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> dst_start_offset_minutes = , 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">short</fo:inline> dst_length_minutes = &gt; 
<fo:inline font-weight="bold">class</fo:inline> us_dst_rules {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_duration_type_&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type_&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::year_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; year_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::calendar_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; calendar_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="last_kday_of_month">date_time::last_kday_of_month</fo:basic-link>&lt; date_type &gt;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; lkday;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="first_kday_of_month">date_time::first_kday_of_month</fo:basic-link>&lt; date_type &gt;&#xA0;&#xA0;&#xA0;&#xA0; fkday;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="dst_calculator">dst_calculator</fo:basic-link>&lt; date_type, time_duration_type &gt; dstcalc;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id386155-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_is_dst_result 
&#xA0;&#xA0;<fo:basic-link internal-destination="id386160-bb">local_is_dst</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id325846-bb">is_dst_boundary_day</fo:basic-link>(date_type) ;
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id376961-bb">local_dst_start_day</fo:basic-link>(year_type) ;
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id324575-bb">local_dst_end_day</fo:basic-link>(year_type) ;
&#xA0;&#xA0;time_duration_type <fo:basic-link internal-destination="id327917-bb">dst_offset</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id463618"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id463622"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">us_dst_rules public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id386155-bb"/><fo:inline font-family="monospace">us_dst_rules</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id463637" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id463643" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id463645" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_is_dst_result 
<fo:wrapper id="id386160-bb"/>local_is_dst(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; td) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calculates if the given local time is dst or not. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Determines if the time is really in DST or not. Also checks for invalid and ambiguous. 
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id463685" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id463687" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id325846-bb"/>is_dst_boundary_day(date_type d) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id463709" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id463711" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id376961-bb"/>local_dst_start_day(year_type year) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id463729" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id463732" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id324575-bb"/>local_dst_end_day(year_type year) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id463749" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id463752" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type <fo:wrapper id="id327917-bb"/>dst_offset() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="null_dst_rules"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template null_dst_rules</fo:block></fo:block><fo:block space-after="1em">Class template null_dst_rules <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Used for local time adjustments in places that don't use dst. </fo:block></fo:block><fo:block>boost::date_time::null_dst_rules</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id463791"><fo:block/><fo:block id="id463792" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type_, <fo:inline font-weight="bold">typename</fo:inline> time_duration_type_&gt; 
<fo:inline font-weight="bold">class</fo:inline> null_dst_rules {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_duration_type_ time_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type_&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id300974-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_is_dst_result 
&#xA0;&#xA0;<fo:basic-link internal-destination="id313824-bb">local_is_dst</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;) ;
&#xA0;&#xA0;time_is_dst_result 
&#xA0;&#xA0;<fo:basic-link internal-destination="id286282-bb">utc_is_dst</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id323313-bb">is_dst_boundary_day</fo:basic-link>(date_type) ;
&#xA0;&#xA0;time_duration_type <fo:basic-link internal-destination="id312296-bb">dst_offset</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id463951"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id463955"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">null_dst_rules public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id300974-bb"/><fo:inline font-family="monospace">null_dst_rules</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id463970" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id463977" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id463979" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_is_dst_result 
<fo:wrapper id="id313824-bb"/>local_is_dst(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; , <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; ) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calculates if the given local time is dst or not. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id464015" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id464018" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_is_dst_result 
<fo:wrapper id="id286282-bb"/>utc_is_dst(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; , <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; ) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calculates if the given utc time is in dst. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id464053" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id464055" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id323313-bb"/>is_dst_boundary_day(date_type d) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id464077" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id464079" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type <fo:wrapper id="id312296-bb"/>dst_offset() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id376648"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/dst_transition_generators.hpp">boost/date_time/dst_transition_generators.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id464114" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="dst_day_calc_rule">dst_day_calc_rule</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> spec&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="day_calc_dst_rule">day_calc_dst_rule</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="dst_day_calc_rule"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template dst_day_calc_rule</fo:block></fo:block><fo:block space-after="1em">Class template dst_day_calc_rule <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines base interface for calculating start and end date of daylight savings. </fo:block></fo:block><fo:block>boost::date_time::dst_day_calc_rule</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id464214"><fo:block/><fo:block id="id464215" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> dst_day_calc_rule {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::year_type year_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="dst_day_calc_ruleconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id302065-bb">~dst_day_calc_rule</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id425419-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> date_type <fo:basic-link internal-destination="id284615-bb">start_day</fo:basic-link>(year_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> date_type <fo:basic-link internal-destination="id435955-bb">end_day</fo:basic-link>(year_type) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id464344"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id464348"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">dst_day_calc_rule construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="dst_day_calc_ruleconstruct-copy-destruct"/><fo:inline font-family="monospace">dst_day_calc_rule</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id464365" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id464371" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id464374" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id302065-bb"/>~dst_day_calc_rule();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id464388"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">dst_day_calc_rule public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id425419-bb"/><fo:inline font-family="monospace">dst_day_calc_rule</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id464402" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id464408" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id464410" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> date_type <fo:wrapper id="id284615-bb"/>start_day(year_type y) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id464440" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id464442" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> date_type <fo:wrapper id="id435955-bb"/>end_day(year_type y) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="day_calc_dst_rule"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template day_calc_dst_rule</fo:block></fo:block><fo:block space-after="1em">Class template day_calc_dst_rule <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Canonical form for a class that provides day rule calculation. </fo:block></fo:block><fo:block>boost::date_time::day_calc_dst_rule</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id464494"><fo:block/><fo:block id="id464495" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> spec&gt; 
<fo:inline font-weight="bold">class</fo:inline> day_calc_dst_rule
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::date_time::dst_day_calc_rule&lt; spec::date_type &gt;
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> spec::date_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::year_type year_type;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> spec::start_rule&#xA0;&#xA0;&#xA0;&#xA0; start_rule;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> spec::end_rule&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; end_rule;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="day_calc_dst_ruleconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id382829-bb">day_calc_dst_rule</fo:basic-link>(start_rule, end_rule);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id396452-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> date_type <fo:basic-link internal-destination="id418477-bb">start_day</fo:basic-link>(year_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> date_type <fo:basic-link internal-destination="id360393-bb">end_day</fo:basic-link>(year_type) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id464655"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This class is used to generate specific sets of dst rules</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block id="id464664"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">day_calc_dst_rule construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="day_calc_dst_ruleconstruct-copy-destruct"/><fo:inline font-family="monospace">day_calc_dst_rule</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id464681" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id464687" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id464689" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id382829-bb"/>day_calc_dst_rule(start_rule dst_start, end_rule dst_end);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id464704"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">day_calc_dst_rule public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id396452-bb"/><fo:inline font-family="monospace">day_calc_dst_rule</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id464719" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id464724" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id464727" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> date_type <fo:wrapper id="id418477-bb"/>start_day(year_type y) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id464756" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id464759" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> date_type <fo:wrapper id="id360393-bb"/>end_day(year_type y) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id356584"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/filetime_functions.hpp">boost/date_time/filetime_functions.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Function(s) for converting between a FILETIME structure and a time object. This file is only available on systems that have BOOST_HAS_FTIME defined.</fo:block><fo:block id="id464808" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type&gt; time_type <fo:basic-link internal-destination="time_from_ftime">time_from_ftime</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> FILETIME &amp;);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="time_from_ftime"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function template time_from_ftime</fo:block></fo:block><fo:block space-after="1em">Function template time_from_ftime <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Create a time object from an initialized FILETIME struct. </fo:block></fo:block><fo:block>boost::date_time::time_from_ftime</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id464882"><fo:block/><fo:block id="id464883" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type&gt; time_type time_from_ftime(<fo:inline font-weight="bold">const</fo:inline> FILETIME &amp; ft);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id464912"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Create a time object from an initialized FILETIME struct. A FILETIME struct holds 100-nanosecond units (0.0000001). When built with microsecond resolution the FILETIME's sub second value will be truncated. Nanosecond resolution has no truncation. </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id338206"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian_calendar.hpp">boost/date_time/gregorian_calendar.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id464939" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ymd_type_, <fo:inline font-weight="bold">typename</fo:inline> date_int_type_&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="gregorian_calendar_base">gregorian_calendar_base</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="gregorian_calendar_base"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template gregorian_calendar_base</fo:block></fo:block><fo:block space-after="1em">Class template gregorian_calendar_base <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An implementation of the Gregorian calendar. </fo:block></fo:block><fo:block>boost::date_time::gregorian_calendar_base</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id465016"><fo:block/><fo:block id="id465018" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ymd_type_, <fo:inline font-weight="bold">typename</fo:inline> date_int_type_&gt; 
<fo:inline font-weight="bold">class</fo:inline> gregorian_calendar_base {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> ymd_type_&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ymd_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// define a type a date split into components </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> ymd_type::month_type month_type;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// define a type for representing months </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> ymd_type::day_type&#xA0;&#xA0; day_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// define a type for representing days </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> ymd_type::year_type&#xA0; year_type;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// Type to hold a stand alone year value (eg: 2002). </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_int_type_&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_int_type;  <fo:inline font-style="italic">// Define the integer type to use for internal calculations. </fo:inline>

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id423726-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:basic-link internal-destination="id426651-bb">day_of_week</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id395028-bb">week_number</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp;) ;
&#xA0;&#xA0;date_int_type <fo:basic-link internal-destination="id367991-bb">day_number</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp;) ;
&#xA0;&#xA0;date_int_type <fo:basic-link internal-destination="id351364-bb">julian_day_number</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">long</fo:inline> <fo:basic-link internal-destination="id407932-bb">modjulian_day_number</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp;) ;
&#xA0;&#xA0;ymd_type <fo:basic-link internal-destination="id342753-bb">from_day_number</fo:basic-link>(date_int_type) ;
&#xA0;&#xA0;ymd_type <fo:basic-link internal-destination="id324808-bb">from_julian_day_number</fo:basic-link>(date_int_type) ;
&#xA0;&#xA0;ymd_type <fo:basic-link internal-destination="id428393-bb">from_modjulian_day_number</fo:basic-link>(<fo:inline font-weight="bold">long</fo:inline>) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id430334-bb">is_leap_year</fo:basic-link>(year_type) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:basic-link internal-destination="id400720-bb">end_of_month_day</fo:basic-link>(year_type, month_type) ;
&#xA0;&#xA0;ymd_type <fo:basic-link internal-destination="id359989-bb">epoch</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:basic-link internal-destination="id362731-bb">days_in_week</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id465383"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a parameterized implementation of a proleptic Gregorian Calendar that can be used in the creation of date systems or just to perform calculations. All the methods of this class are static functions, so the intent is to never create instances of this class. 
</fo:block><fo:block id="id465394"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">gregorian_calendar_base public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id423726-bb"/><fo:inline font-family="monospace">gregorian_calendar_base</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id465410" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id465415" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id465418" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:wrapper id="id426651-bb"/>day_of_week(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp; ymd) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id465452" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id465454" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id395028-bb"/>week_number(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp; ymd) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id465482" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id465484" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_int_type <fo:wrapper id="id367991-bb"/>day_number(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp; ymd) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id465508" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id465511" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_int_type <fo:wrapper id="id351364-bb"/>julian_day_number(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp; ymd) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id465536" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id465538" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">long</fo:inline> <fo:wrapper id="id407932-bb"/>modjulian_day_number(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp; ymd) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id465566" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id465568" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">ymd_type <fo:wrapper id="id342753-bb"/>from_day_number(date_int_type ) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id465586" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id465588" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">ymd_type <fo:wrapper id="id324808-bb"/>from_julian_day_number(date_int_type ) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id465606" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id465609" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">ymd_type <fo:wrapper id="id428393-bb"/>from_modjulian_day_number(<fo:inline font-weight="bold">long</fo:inline> ) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id465633" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id465636" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id430334-bb"/>is_leap_year(year_type ) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id465657" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id465659" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:wrapper id="id400720-bb"/>end_of_month_day(year_type y, month_type m) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id465687" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id465689" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">ymd_type <fo:wrapper id="id359989-bb"/>epoch() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id465706" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id465709" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:wrapper id="id362731-bb"/>days_in_week() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id386642"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/int_adapter.hpp">boost/date_time/int_adapter.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id465753" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> int_type_&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits, <fo:inline font-weight="bold">typename</fo:inline> int_type&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id384987"><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;</fo:basic-link>(std::basic_ostream&lt; charT, traits &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link>&lt; int_type &gt; &amp;);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="int_adapter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template int_adapter</fo:block></fo:block><fo:block space-after="1em">Class template int_adapter <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Adapter to create integer types with +-infinity, and not a value. </fo:block></fo:block><fo:block>boost::date_time::int_adapter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id465884"><fo:block/><fo:block id="id465885" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> int_type_&gt; 
<fo:inline font-weight="bold">class</fo:inline> int_adapter {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> int_type_ int_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="int_adapterconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id300108-bb">int_adapter</fo:basic-link>(int_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id323624-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id323630-bb">is_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id326407-bb">is_pos_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id322782-bb">is_neg_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id320435-bb">is_nan</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id379638-bb">is_special</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id408572-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id343967-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id326766-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id369714-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id324744-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id284117-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id412479-bb"><fo:inline font-weight="bold">operator</fo:inline>&gt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id428285-bb">as_number</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;special_values <fo:basic-link internal-destination="id445295-bb">as_special</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> rhs_type&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id305809-bb"><fo:inline font-weight="bold">operator</fo:inline>+</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link>&lt; rhs_type &gt; &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id407125-bb"><fo:inline font-weight="bold">operator</fo:inline>+</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> int_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> rhs_type&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id425794-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link>&lt; rhs_type &gt; &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id351970-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> int_type) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id414307-bb"><fo:inline font-weight="bold">operator</fo:inline> *</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id372409-bb"><fo:inline font-weight="bold">operator</fo:inline> *</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id405581-bb"><fo:inline font-weight="bold">operator</fo:inline>/</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id334601-bb"><fo:inline font-weight="bold">operator</fo:inline>/</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id383665-bb"><fo:inline font-weight="bold">operator</fo:inline>%</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id325167-bb"><fo:inline font-weight="bold">operator</fo:inline>%</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id321702-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id321707-bb">has_infinity</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id373839-bb">pos_infinity</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id386524-bb">neg_infinity</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id319189-bb">not_a_number</fo:basic-link>() ;
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> max <fo:basic-link internal-destination="id372032-bb">BOOST_PREVENT_MACRO_SUBSTITUTION</fo:basic-link>() ;
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> min <fo:basic-link internal-destination="id432084-bb">BOOST_PREVENT_MACRO_SUBSTITUTION</fo:basic-link>() ;
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id316024-bb">from_special</fo:basic-link>(special_values) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id400234-bb">is_inf</fo:basic-link>(int_type) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id401368-bb">is_neg_inf</fo:basic-link>(int_type) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id411120-bb">is_pos_inf</fo:basic-link>(int_type) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id349153-bb">is_not_a_number</fo:basic-link>(int_type) ;
&#xA0;&#xA0;special_values <fo:basic-link internal-destination="id373477-bb">to_special</fo:basic-link>(int_type) ;
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id360032-bb">maxcount</fo:basic-link>() ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id346826-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id298312-bb">compare</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id377088-bb">mult_div_specials</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:basic-link internal-destination="id377674-bb">mult_div_specials</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id467262"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This class is used internally in counted date/time representations. It adds the floating point like features of infinities and not a number. It also provides mathmatical operations with consideration to special values following these rules: <fo:block id="id467272" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">  +infinity  -  infinity  == Not A Number (NAN)
   infinity  *  non-zero  == infinity
   infinity  *  zero      == NAN
  +infinity  * -integer   == -infinity
   infinity  /  infinity  == NAN
   infinity  *  infinity  == infinity 
 *
</fo:block></fo:block><fo:block id="id467281"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">int_adapter construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="int_adapterconstruct-copy-destruct"/><fo:inline font-family="monospace">int_adapter</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id467298" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id467304" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467306" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id300108-bb"/>int_adapter(int_type v);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id467320"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">int_adapter public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id323624-bb"/><fo:inline font-family="monospace">int_adapter</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id467335" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id467341" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467343" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id323630-bb"/>is_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467371" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467373" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id326407-bb"/>is_pos_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467401" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467403" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id322782-bb"/>is_neg_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467430" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467433" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id320435-bb"/>is_nan() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467460" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467462" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id379638-bb"/>is_special() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467489" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467492" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id408572-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467538" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467541" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id343967-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467586" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467588" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id326766-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467635" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467637" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id369714-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467682" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467684" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id324744-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467731" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467734" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id284117-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467779" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467781" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id412479-bb"/><fo:inline font-weight="bold">operator</fo:inline>&gt;(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467828" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>13.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467830" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id428285-bb"/>as_number() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467854" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>14.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467856" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">special_values <fo:wrapper id="id445295-bb"/>as_special() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns either special value type or is_not_special. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467884" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>15.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467886" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> rhs_type&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id305809-bb"/><fo:inline font-weight="bold">operator</fo:inline>+(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link>&lt; rhs_type &gt; &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Operator allows for adding dissimilar int_adapter types. The return type will match that of the the calling object's type </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467953" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>16.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467955" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id407125-bb"/><fo:inline font-weight="bold">operator</fo:inline>+(<fo:inline font-weight="bold">const</fo:inline> int_type rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id467995" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>17.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id467998" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> rhs_type&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id425794-bb"/><fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link>&lt; rhs_type &gt; &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Operator allows for subtracting dissimilar int_adapter types. The return type will match that of the the calling object's type </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468064" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>18.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468067" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id351970-bb"/><fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> int_type rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468107" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>19.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468110" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id414307-bb"/><fo:inline font-weight="bold">operator</fo:inline> *(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468158" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>20.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468160" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id372409-bb"/><fo:inline font-weight="bold">operator</fo:inline> *(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Provided for cases when automatic conversion from 'int' to 'int_adapter' causes incorrect results. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468211" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>21.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468213" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id405581-bb"/><fo:inline font-weight="bold">operator</fo:inline>/(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468261" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>22.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468264" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id334601-bb"/><fo:inline font-weight="bold">operator</fo:inline>/(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Provided for cases when automatic conversion from 'int' to 'int_adapter' causes incorrect results. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468314" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>23.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468317" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id383665-bb"/><fo:inline font-weight="bold">operator</fo:inline>%(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468365" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>24.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468367" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id325167-bb"/><fo:inline font-weight="bold">operator</fo:inline>%(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Provided for cases when automatic conversion from 'int' to 'int_adapter' causes incorrect results. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id468418"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">int_adapter public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id321702-bb"/><fo:inline font-family="monospace">int_adapter</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id468433" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id468439" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468441" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id321707-bb"/>has_infinity() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468463" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468465" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id373839-bb"/>pos_infinity() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468494" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468496" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id386524-bb"/>neg_infinity() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468525" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468528" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id319189-bb"/>not_a_number() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468557" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468559" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> max <fo:wrapper id="id372032-bb"/>BOOST_PREVENT_MACRO_SUBSTITUTION() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468583" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468585" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> min <fo:wrapper id="id432084-bb"/>BOOST_PREVENT_MACRO_SUBSTITUTION() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468609" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468611" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id316024-bb"/>from_special(special_values sv) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468634" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468637" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id400234-bb"/>is_inf(int_type v) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468658" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468660" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id401368-bb"/>is_neg_inf(int_type v) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468681" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468683" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id411120-bb"/>is_pos_inf(int_type v) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468704" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468706" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id349153-bb"/>is_not_a_number(int_type v) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468728" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468730" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">special_values <fo:wrapper id="id373477-bb"/>to_special(int_type v) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns either special value type or is_not_special. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468751" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>13.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468754" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id360032-bb"/>maxcount() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id468771"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">int_adapter private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id346826-bb"/><fo:inline font-family="monospace">int_adapter</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id468786" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id468792" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468794" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id298312-bb"/>compare(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">returns -1, 0, 1, or 2 if 'this' is &lt;, ==, &gt;, or 'nan comparison' rhs </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468840" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468842" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id377088-bb"/>mult_div_specials(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Assumes at least 'this' or 'rhs' is a special value. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id468889" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id468892" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link> <fo:wrapper id="id377674-bb"/>mult_div_specials(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Assumes 'this' is a special value. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id384987"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function template operator&lt;&lt;</fo:block></fo:block><fo:block space-after="1em">Function template operator&lt;&lt; <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::date_time::operator&lt;&lt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id468956"><fo:block/><fo:block id="id468957" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits, <fo:inline font-weight="bold">typename</fo:inline> int_type&gt; 
&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;<fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="int_adapter">int_adapter</fo:basic-link>&lt; int_type &gt; &amp; ia);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id469016"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Expected output is either a numeric representation or a special values representation.
 Ex. "12", "+infinity", "not-a-number", etc. </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id387443"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/iso_format.hpp">boost/date_time/iso_format.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id469041" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="iso_format_base">iso_format_base</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id301674-bb">iso_format_base</fo:basic-link>&lt;<fo:inline font-weight="bold">wchar_t</fo:inline>&gt;;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="iso_format">iso_format</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="iso_extended_format">iso_extended_format</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="iso_format_base"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template iso_format_base</fo:block></fo:block><fo:block space-after="1em">Class template iso_format_base <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class to provide common iso formatting spec. </fo:block></fo:block><fo:block>boost::date_time::iso_format_base</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id469200"><fo:block/><fo:block id="id469201" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
<fo:inline font-weight="bold">class</fo:inline> iso_format_base {
<fo:inline font-weight="bold">public</fo:inline>:

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id285752-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;month_format_spec <fo:basic-link internal-destination="id423503-bb">month_format</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT * <fo:basic-link internal-destination="id313806-bb">not_a_date</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT * <fo:basic-link internal-destination="id387091-bb">pos_infinity</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> charT * <fo:basic-link internal-destination="id435399-bb">neg_infinity</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id375757-bb">year_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id396391-bb">month_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id366361-bb">day_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id398109-bb">hour_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id312872-bb">minute_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id347104-bb">second_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id372481-bb">period_start_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id422169-bb">time_start_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id425211-bb">week_start_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id352864-bb">period_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id412722-bb">time_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id382708-bb">fractional_time_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id353866-bb">is_component_sep</fo:basic-link>(charT) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id322883-bb">is_fractional_time_sep</fo:basic-link>(charT) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id306355-bb">is_timezone_sep</fo:basic-link>(charT) ;
&#xA0;&#xA0;charT <fo:basic-link internal-destination="id334743-bb">element_sep_char</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id469549"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id469553"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">iso_format_base public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id285752-bb"/><fo:inline font-family="monospace">iso_format_base</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id469568" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id469574" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469577" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_format_spec <fo:wrapper id="id423503-bb"/>month_format() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Describe month format -- its an integer in iso format. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469598" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469601" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> charT * <fo:wrapper id="id313806-bb"/>not_a_date() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">String used printed is date is invalid. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469626" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469628" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> charT * <fo:wrapper id="id387091-bb"/>pos_infinity() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">String used to for positive infinity value. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469655" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469657" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> charT * <fo:wrapper id="id435399-bb"/>neg_infinity() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">String used to for positive infinity value. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469683" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469686" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id375757-bb"/>year_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ISO char for a year -- used in durations. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469706" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469709" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id396391-bb"/>month_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ISO char for a month. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469729" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469732" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id366361-bb"/>day_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ISO char for a day. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469752" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469754" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id398109-bb"/>hour_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char for minute </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469775" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469777" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id312872-bb"/>minute_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char for minute </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469798" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469800" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id347104-bb"/>second_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char for second </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469820" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469823" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id372481-bb"/>period_start_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ISO char for a period. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469843" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469846" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id422169-bb"/>time_start_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Used in time in mixed strings to set start of time. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469867" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>13.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469869" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id425211-bb"/>week_start_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Used in mixed strings to identify start of a week number. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469890" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>14.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469892" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id352864-bb"/>period_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Separators for periods. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469913" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>15.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469915" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id412722-bb"/>time_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Separator for hh:mm:ss. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469936" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>16.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469938" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id382708-bb"/>fractional_time_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Preferred Separator for hh:mm:ss,decimal_fraction. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469959" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>17.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469962" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id353866-bb"/>is_component_sep(charT sep) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id469983" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>18.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id469985" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id322883-bb"/>is_fractional_time_sep(charT sep) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470007" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>19.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470009" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id306355-bb"/>is_timezone_sep(charT sep) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470030" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>20.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470033" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">charT <fo:wrapper id="id334743-bb"/>element_sep_char() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id470050"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Specializations</fo:marker><fo:block font-size="10pt">Specializations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id470054" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id470055" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="id301674-bb">Class iso_format_base&lt;wchar_t&gt;</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id301674-bb"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class iso_format_base&lt;wchar_t&gt;</fo:block></fo:block><fo:block space-after="1em">Class iso_format_base&lt;wchar_t&gt; <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class to provide common iso formatting spec. </fo:block></fo:block><fo:block>boost::date_time::iso_format_base&lt;wchar_t&gt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id470087"><fo:block/><fo:block id="id470088" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> iso_format_base&lt;<fo:inline font-weight="bold">wchar_t</fo:inline>&gt; {
<fo:inline font-weight="bold">public</fo:inline>:

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id401187-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;month_format_spec <fo:basic-link internal-destination="id401193-bb">month_format</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:basic-link internal-destination="id362065-bb">not_a_date</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:basic-link internal-destination="id344660-bb">pos_infinity</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:basic-link internal-destination="id341918-bb">neg_infinity</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id402263-bb">year_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id395904-bb">month_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id385232-bb">day_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id445030-bb">hour_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id381725-bb">minute_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id368495-bb">second_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id351640-bb">period_start_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id403182-bb">time_start_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id335068-bb">week_start_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id417633-bb">period_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id361957-bb">time_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id322821-bb">fractional_time_sep_char</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id362689-bb">is_component_sep</fo:basic-link>(<fo:inline font-weight="bold">wchar_t</fo:inline>) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id410074-bb">is_fractional_time_sep</fo:basic-link>(<fo:inline font-weight="bold">wchar_t</fo:inline>) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id374388-bb">is_timezone_sep</fo:basic-link>(<fo:inline font-weight="bold">wchar_t</fo:inline>) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">wchar_t</fo:inline> <fo:basic-link internal-destination="id387938-bb">element_sep_char</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id470514"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id470517"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">iso_format_base public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id401187-bb"/><fo:inline font-family="monospace">iso_format_base</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id470532" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id470539" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470541" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_format_spec <fo:wrapper id="id401193-bb"/>month_format() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Describe month format -- its an integer in iso format. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470563" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470565" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:wrapper id="id362065-bb"/>not_a_date() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">String used printed is date is invalid. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470596" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470599" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:wrapper id="id344660-bb"/>pos_infinity() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">String used to for positive infinity value. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470631" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470633" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:wrapper id="id341918-bb"/>neg_infinity() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">String used to for positive infinity value. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470665" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470668" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id402263-bb"/>year_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ISO char for a year -- used in durations. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470692" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470694" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id395904-bb"/>month_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ISO char for a month. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470718" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470721" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id385232-bb"/>day_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ISO char for a day. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470745" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470747" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id445030-bb"/>hour_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char for minute </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470771" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470774" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id381725-bb"/>minute_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char for minute </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470798" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470800" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id368495-bb"/>second_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">char for second </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470824" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470826" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id351640-bb"/>period_start_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ISO char for a period. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470851" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470853" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id403182-bb"/>time_start_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Used in time in mixed strings to set start of time. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470878" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>13.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470880" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id335068-bb"/>week_start_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Used in mixed strings to identify start of a week number. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470905" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>14.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470907" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id417633-bb"/>period_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Separators for periods. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470931" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>15.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470934" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id361957-bb"/>time_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Separator for hh:mm:ss. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470958" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>16.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470960" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id322821-bb"/>fractional_time_sep_char() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Preferred Separator for hh:mm:ss,decimal_fraction. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id470985" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>17.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id470987" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id362689-bb"/>is_component_sep(<fo:inline font-weight="bold">wchar_t</fo:inline> sep) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id471015" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>18.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id471017" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id410074-bb"/>is_fractional_time_sep(<fo:inline font-weight="bold">wchar_t</fo:inline> sep) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id471045" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>19.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id471047" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id374388-bb"/>is_timezone_sep(<fo:inline font-weight="bold">wchar_t</fo:inline> sep) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id471075" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>20.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id471077" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">wchar_t</fo:inline> <fo:wrapper id="id387938-bb"/>element_sep_char() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="iso_format"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template iso_format</fo:block></fo:block><fo:block space-after="1em">Class template iso_format <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Format description for iso normal YYYYMMDD. </fo:block></fo:block><fo:block>boost::date_time::iso_format</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id471119"><fo:block/><fo:block id="id471120" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
<fo:inline font-weight="bold">class</fo:inline> iso_format : <fo:inline font-weight="bold">public</fo:inline> boost::date_time::iso_format_base&lt; charT &gt; {
<fo:inline font-weight="bold">public</fo:inline>:

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id289015-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id289020-bb">has_date_sep_chars</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id471188"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id471192"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">iso_format public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id289015-bb"/><fo:inline font-family="monospace">iso_format</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id471207" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id471213" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id471216" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id289020-bb"/>has_date_sep_chars() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The ios standard format doesn't use char separators. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="iso_extended_format"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template iso_extended_format</fo:block></fo:block><fo:block space-after="1em">Class template iso_extended_format <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Extended format uses seperators YYYY-MM-DD. </fo:block></fo:block><fo:block>boost::date_time::iso_extended_format</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id471263"><fo:block/><fo:block id="id471264" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
<fo:inline font-weight="bold">class</fo:inline> iso_extended_format
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::date_time::iso_format_base&lt; charT &gt;
{
<fo:inline font-weight="bold">public</fo:inline>:

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id323920-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id377392-bb">has_date_sep_chars</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id471331"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id471335"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">iso_extended_format public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id323920-bb"/><fo:inline font-family="monospace">iso_extended_format</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id471350" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id471356" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id471358" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id377392-bb"/>has_date_sep_chars() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Extended format needs char separators. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id399454"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/local_time_adjustor.hpp">boost/date_time/local_time_adjustor.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Time adjustment calculations for local times</fo:block><fo:block id="id471402" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_duration_type, <fo:inline font-weight="bold">short</fo:inline> hours, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> minutes = &gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="utc_adjustment">utc_adjustment</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type, <fo:inline font-weight="bold">typename</fo:inline> dst_rules&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id418394">dynamic_local_time_adjustor</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type, <fo:inline font-weight="bold">typename</fo:inline> dst_rules, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> utc_offset_rules&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="static_local_time_adjustor">static_local_time_adjustor</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type, <fo:inline font-weight="bold">short</fo:inline> utc_offset, <fo:inline font-weight="bold">typename</fo:inline> dst_rule&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="local_adjustor">local_adjustor</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="dummy_to_prevent_msvc6_ice"/>dummy_to_prevent_msvc6_ice();
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="utc_adjustment"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template utc_adjustment</fo:block></fo:block><fo:block space-after="1em">Class template utc_adjustment <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Provides a base offset adjustment from utc. </fo:block></fo:block><fo:block>boost::date_time::utc_adjustment</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id471634"><fo:block/><fo:block id="id471635" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_duration_type, <fo:inline font-weight="bold">short</fo:inline> hours, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> minutes = &gt; 
<fo:inline font-weight="bold">class</fo:inline> utc_adjustment {
<fo:inline font-weight="bold">public</fo:inline>:

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id302720-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_duration_type <fo:basic-link internal-destination="id331890-bb">local_to_utc_base_offset</fo:basic-link>() ;
&#xA0;&#xA0;time_duration_type <fo:basic-link internal-destination="id386568-bb">utc_to_local_base_offset</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id471727"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id471731"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">utc_adjustment public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id302720-bb"/><fo:inline font-family="monospace">utc_adjustment</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id471746" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id471752" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id471754" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type <fo:wrapper id="id331890-bb"/>local_to_utc_base_offset() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id471773" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id471775" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type <fo:wrapper id="id386568-bb"/>utc_to_local_base_offset() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id418394"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template dynamic_local_time_adjustor</fo:block></fo:block><fo:block space-after="1em">Class template dynamic_local_time_adjustor <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Allow sliding utc adjustment with fixed dst rules. </fo:block></fo:block><fo:block>boost::date_time::dynamic_local_time_adjustor</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id471815"><fo:block/><fo:block id="id471816" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type, <fo:inline font-weight="bold">typename</fo:inline> dst_rules&gt; 
<fo:inline font-weight="bold">class</fo:inline> dynamic_local_time_adjustor {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::time_duration_type time_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::date_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id418394construct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id322307-bb">dynamic_local_time_adjustor</fo:basic-link>(time_duration_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id391590-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_duration_type <fo:basic-link internal-destination="id391596-bb">utc_offset</fo:basic-link>(<fo:inline font-weight="bold">bool</fo:inline>) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id471931"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id471935"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">dynamic_local_time_adjustor construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id418394construct-copy-destruct"/><fo:inline font-family="monospace">dynamic_local_time_adjustor</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id471951" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id471957" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id471960" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id322307-bb"/>dynamic_local_time_adjustor(time_duration_type utc_offset);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id471974"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">dynamic_local_time_adjustor public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id391590-bb"/><fo:inline font-family="monospace">dynamic_local_time_adjustor</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id471990" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id471995" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id471998" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type <fo:wrapper id="id391596-bb"/>utc_offset(<fo:inline font-weight="bold">bool</fo:inline> is_dst) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Presumes local time. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="static_local_time_adjustor"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template static_local_time_adjustor</fo:block></fo:block><fo:block space-after="1em">Class template static_local_time_adjustor <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Embed the rules for local time adjustments at compile time. </fo:block></fo:block><fo:block>boost::date_time::static_local_time_adjustor</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id472048"><fo:block/><fo:block id="id472049" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type, <fo:inline font-weight="bold">typename</fo:inline> dst_rules, <fo:inline font-weight="bold">typename</fo:inline> utc_offset_rules&gt; 
<fo:inline font-weight="bold">class</fo:inline> static_local_time_adjustor {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::time_duration_type time_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::date_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id329177-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_duration_type <fo:basic-link internal-destination="id366953-bb">utc_to_local_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;) ;
&#xA0;&#xA0;time_duration_type 
&#xA0;&#xA0;<fo:basic-link internal-destination="id344362-bb">local_to_utc_offset</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;date_time::dst_flags = date_time::calculate) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id472170"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id472174"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">static_local_time_adjustor public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id329177-bb"/><fo:inline font-family="monospace">static_local_time_adjustor</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id472190" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id472195" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id472198" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type <fo:wrapper id="id366953-bb"/>utc_to_local_offset(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; t) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calculates the offset from a utc time to local based on dst and utc offset. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The logic is as follows. Starting with UTC time use the offset to create a label for an non-dst adjusted local time. Then call dst_rules::local_is_dst with the non adjust local time. The results of this function will either unabiguously decide that the initial local time is in dst or return an illegal or ambiguous result. An illegal result only occurs at the end of dst (where labels are skipped) and indicates that dst has ended. An ambiguous result means that we need to recheck by making a dst adjustment and then rechecking. If the dst offset is added to the utc time and the recheck proves non-ambiguous then we are past the boundary. If it is still ambiguous then we are ahead of the boundary and dst is still in effect.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO -- check if all dst offsets are positive. If not then the algorithm needs to check for this and reverse the illegal/ambiguous logic. </fo:block><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id472246" provisional-distance-between-starts="1em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id472252" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>t</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>UTC time to calculate offset to local time This adjustment depends on the following observations about the workings of the DST boundary offset. Since UTC time labels are monotonically increasing we can determine if a given local time is in DST or not and therefore adjust the offset appropriately.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id472265" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id472268" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type 
<fo:wrapper id="id344362-bb"/>local_to_utc_offset(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; t, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;date_time::dst_flags dst = date_time::calculate) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Get the offset to UTC given a local time. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="local_adjustor"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template local_adjustor</fo:block></fo:block><fo:block space-after="1em">Class template local_adjustor <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Template that simplifies the creation of local time calculator. </fo:block></fo:block><fo:block>boost::date_time::local_adjustor</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id472319"><fo:block/><fo:block id="id472320" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type, <fo:inline font-weight="bold">short</fo:inline> utc_offset, <fo:inline font-weight="bold">typename</fo:inline> dst_rule&gt; 
<fo:inline font-weight="bold">class</fo:inline> local_adjustor {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::time_duration_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::date_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="static_local_time_adjustor">static_local_time_adjustor</fo:basic-link>&lt; time_type, dst_rule, <fo:basic-link internal-destination="utc_adjustment">utc_adjustment</fo:basic-link>&lt; time_duration_type, utc_offset &gt; &gt; dst_adjustor;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id412017-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id360605-bb">utc_to_local</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;) ;
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id424108-bb">local_to_utc</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;date_time::dst_flags = date_time::calculate) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id472474"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use this template to create the timezone to utc convertors as required.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This class will also work for other regions that don't use dst and have a utc offset which is an integral number of hours.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Template Parameters</fo:inline>  -time_type -- Time class to use -utc_offset -- Number hours local time is adjust from utc -use_dst -- true (default) if region uses dst, false otherwise For example: <fo:block id="id472497" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">  //eastern timezone is utc-5
     typedef date_time::local_adjustor&lt;ptime, -5, us_dst&gt; us_eastern;
     typedef date_time::local_adjustor&lt;ptime, -6, us_dst&gt; us_central;
     typedef date_time::local_adjustor&lt;ptime, -7, us_dst&gt; us_mountain;
     typedef date_time::local_adjustor&lt;ptime, -8, us_dst&gt; us_pacific;
     typedef date_time::local_adjustor&lt;ptime, -7, no_dst&gt; us_arizona;
</fo:block></fo:block><fo:block id="id472515"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">local_adjustor public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id412017-bb"/><fo:inline font-family="monospace">local_adjustor</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id472530" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id472536" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id472538" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id360605-bb"/>utc_to_local(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; t) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convert a utc time to local time. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id472566" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id472568" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id424108-bb"/>local_to_utc(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; t, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;date_time::dst_flags dst = date_time::calculate) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convert a local time to utc. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id379829"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/local_timezone_defs.hpp">boost/date_time/local_timezone_defs.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id472614" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="us_dst_trait">us_dst_trait</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="eu_dst_trait">eu_dst_trait</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="uk_dst_trait">uk_dst_trait</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; <fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="acst_dst_trait">acst_dst_trait</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="us_dst_trait"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct template us_dst_trait</fo:block></fo:block><fo:block space-after="1em">Struct template us_dst_trait <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specification for daylight savings start rules in US. </fo:block></fo:block><fo:block>boost::date_time::us_dst_trait</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id472773"><fo:block/><fo:block id="id472774" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">struct</fo:inline> us_dst_trait {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::day_of_week_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; day_of_week_type;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::month_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="first_kday_of_month">date_time::first_kday_of_month</fo:basic-link>&lt; date_type &gt; start_rule_functor;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="last_kday_of_month">date_time::last_kday_of_month</fo:basic-link>&lt; date_type &gt;&#xA0; end_rule_functor;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id425487-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;day_of_week_type <fo:basic-link internal-destination="id425493-bb">start_day</fo:basic-link>() ;
&#xA0;&#xA0;month_type <fo:basic-link internal-destination="id425805-bb">start_month</fo:basic-link>() ;
&#xA0;&#xA0;day_of_week_type <fo:basic-link internal-destination="id445060-bb">end_day</fo:basic-link>() ;
&#xA0;&#xA0;month_type <fo:basic-link internal-destination="id368659-bb">end_month</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id354964-bb">dst_start_offset_minutes</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id327678-bb">dst_end_offset_minutes</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id285738-bb">dst_shift_length_minutes</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id472973"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This class is used to configure dst_calc_engine template typically as follows: <fo:block id="id472981" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">          using namespace boost::gregorian;
          using namespace boost::posix_time;
          typedef us_dst_trait&lt;date&gt; us_dst_traits;
          typedef boost::date_time::dst_calc_engine&lt;date, time_duration, 
                                                    us_dst_traits&gt;  
                                                    us_dst_calc;
          //calculate the 2002 transition day of USA April 7 2002
          date dst_start = us_dst_calc::local_dst_start_day(2002); 

          //calculate the 2002 transition day of USA Oct 27 2002
          date dst_end = us_dst_calc::local_dst_end_day(2002); 
                                                    
          //check if a local time is in dst or not -- posible answers
          //are yes, no, invalid time label, ambiguous
          ptime t(...some time...);  
          if (us_dst::local_is_dst(t.date(), t.time_of_day()) 
              == boost::date_time::is_not_in_dst) 
          {

          }
</fo:block>This generates a type suitable for the calculation of dst transitions for the United States. Of course other templates can be used for other locales. </fo:block><fo:block id="id473046"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">us_dst_trait public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id425487-bb"/><fo:inline font-family="monospace">us_dst_trait</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id473061" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id473067" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473069" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_of_week_type <fo:wrapper id="id425493-bb"/>start_day() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473087" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473089" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_type <fo:wrapper id="id425805-bb"/>start_month() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473107" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473109" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_of_week_type <fo:wrapper id="id445060-bb"/>end_day() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473127" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473129" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_type <fo:wrapper id="id368659-bb"/>end_month() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473147" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473149" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id354964-bb"/>dst_start_offset_minutes() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473170" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473173" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id327678-bb"/>dst_end_offset_minutes() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473194" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473196" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id285738-bb"/>dst_shift_length_minutes() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="eu_dst_trait"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct template eu_dst_trait</fo:block></fo:block><fo:block space-after="1em">Struct template eu_dst_trait <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Rules for daylight savings start in the EU (Last Sun in Mar). </fo:block></fo:block><fo:block>boost::date_time::eu_dst_trait</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id473238"><fo:block/><fo:block id="id473240" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">struct</fo:inline> eu_dst_trait {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::day_of_week_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; day_of_week_type;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::month_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="last_kday_of_month">date_time::last_kday_of_month</fo:basic-link>&lt; date_type &gt; start_rule_functor;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="last_kday_of_month">date_time::last_kday_of_month</fo:basic-link>&lt; date_type &gt; end_rule_functor;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id320813-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;day_of_week_type <fo:basic-link internal-destination="id320819-bb">start_day</fo:basic-link>() ;
&#xA0;&#xA0;month_type <fo:basic-link internal-destination="id408652-bb">start_month</fo:basic-link>() ;
&#xA0;&#xA0;day_of_week_type <fo:basic-link internal-destination="id313956-bb">end_day</fo:basic-link>() ;
&#xA0;&#xA0;month_type <fo:basic-link internal-destination="id306446-bb">end_month</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id378606-bb">dst_start_offset_minutes</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id367972-bb">dst_end_offset_minutes</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id427325-bb">dst_shift_length_minutes</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id473438"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">These amount to the following:<fo:list-block id="id473445" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id473446" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Start of dst day is last Sunday in March</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473451" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>End day of dst is last Sunday in Oct</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473455" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Going forward switch time is 2:00 am (offset 120 minutes)</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473460" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Going back switch time is 3:00 am (off set 180 minutes)</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473465" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Shift duration is one hour (60 minutes) </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id473469"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">eu_dst_trait public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id320813-bb"/><fo:inline font-family="monospace">eu_dst_trait</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id473484" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id473490" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473493" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_of_week_type <fo:wrapper id="id320819-bb"/>start_day() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473510" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473513" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_type <fo:wrapper id="id408652-bb"/>start_month() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473530" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473533" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_of_week_type <fo:wrapper id="id313956-bb"/>end_day() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473550" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473553" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_type <fo:wrapper id="id306446-bb"/>end_month() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473570" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473572" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id378606-bb"/>dst_start_offset_minutes() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473593" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473596" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id367972-bb"/>dst_end_offset_minutes() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473617" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473619" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id427325-bb"/>dst_shift_length_minutes() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="uk_dst_trait"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct template uk_dst_trait</fo:block></fo:block><fo:block space-after="1em">Struct template uk_dst_trait <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Alternative dst traits for some parts of the United Kingdom. </fo:block></fo:block><fo:block>boost::date_time::uk_dst_trait</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id473661"><fo:block/><fo:block id="id473662" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">struct</fo:inline> uk_dst_trait : <fo:inline font-weight="bold">public</fo:inline> boost::date_time::eu_dst_trait&lt; date_type &gt; {

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id299024-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id299030-bb">dst_start_offset_minutes</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id428011-bb">dst_end_offset_minutes</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id319696-bb">dst_shift_length_minutes</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id473759"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id473762"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">uk_dst_trait public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id299024-bb"/><fo:inline font-family="monospace">uk_dst_trait</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id473777" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id473784" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473786" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id299030-bb"/>dst_start_offset_minutes() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473807" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473810" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id428011-bb"/>dst_end_offset_minutes() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id473831" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id473833" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id319696-bb"/>dst_shift_length_minutes() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="acst_dst_trait"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct template acst_dst_trait</fo:block></fo:block><fo:block space-after="1em">Struct template acst_dst_trait <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::date_time::acst_dst_trait</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id473872"><fo:block/><fo:block id="id473873" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type&gt; 
<fo:inline font-weight="bold">struct</fo:inline> acst_dst_trait {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::day_of_week_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; day_of_week_type;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::month_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="last_kday_of_month">date_time::last_kday_of_month</fo:basic-link>&lt; date_type &gt; start_rule_functor;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="last_kday_of_month">date_time::last_kday_of_month</fo:basic-link>&lt; date_type &gt; end_rule_functor;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id344507-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;day_of_week_type <fo:basic-link internal-destination="id380227-bb">start_day</fo:basic-link>() ;
&#xA0;&#xA0;month_type <fo:basic-link internal-destination="id401679-bb">start_month</fo:basic-link>() ;
&#xA0;&#xA0;day_of_week_type <fo:basic-link internal-destination="id312115-bb">end_day</fo:basic-link>() ;
&#xA0;&#xA0;month_type <fo:basic-link internal-destination="id303015-bb">end_month</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id298176-bb">dst_start_offset_minutes</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id392768-bb">dst_end_offset_minutes</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id400912-bb">dst_shift_length_minutes</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id474072"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id474076"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">acst_dst_trait public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id344507-bb"/><fo:inline font-family="monospace">acst_dst_trait</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id474091" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id474097" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id474100" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_of_week_type <fo:wrapper id="id380227-bb"/>start_day() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id474117" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id474120" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_type <fo:wrapper id="id401679-bb"/>start_month() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id474137" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id474140" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_of_week_type <fo:wrapper id="id312115-bb"/>end_day() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id474157" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id474160" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_type <fo:wrapper id="id303015-bb"/>end_month() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id474177" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id474179" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id298176-bb"/>dst_start_offset_minutes() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id474201" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id474203" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id392768-bb"/>dst_end_offset_minutes() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id474224" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id474226" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id400912-bb"/>dst_shift_length_minutes() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id331390"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/microsec_time_clock.hpp">boost/date_time/microsec_time_clock.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This file contains a high resolution time clock implementation.</fo:block><fo:block id="id474267" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="microsec_clock">microsec_clock</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="microsec_clock"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template microsec_clock</fo:block></fo:block><fo:block space-after="1em">Class template microsec_clock <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A clock providing microsecond level resolution. </fo:block></fo:block><fo:block>boost::date_time::microsec_clock</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id474336"><fo:block/><fo:block id="id474337" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> microsec_clock {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::date_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::time_duration_type time_duration_type;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_duration_type::rep_type&#xA0; resolution_traits_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id430932-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id310198-bb">local_time</fo:basic-link>() ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id427143-bb">private static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id427149-bb">create_time</fo:basic-link>(timeval *) ;
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id405249-bb">local_time</fo:basic-link>() ;
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id439095-bb">create_time</fo:basic-link>(FILETIME &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id474478"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A high precision clock that measures the local time at a resolution up to microseconds and adjusts to the resolution of the time system. For example, for the a library configuration with nano second resolution, the last 3 places of the fractional seconds will always be 000 since there are 1000 nano-seconds in a micro second. </fo:block><fo:block id="id474490"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">microsec_clock public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id430932-bb"/><fo:inline font-family="monospace">microsec_clock</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id474505" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id474511" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id474513" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id310198-bb"/>local_time() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the local time based on computer clock settings. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id474534"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">microsec_clock private static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id427143-bb"/><fo:inline font-family="monospace">microsec_clock</fo:inline> private static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id474550" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id474556" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id474558" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id427149-bb"/>create_time(timeval * tv) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id474576" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id474579" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id405249-bb"/>local_time() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the local time based on computer clock settings. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id474599" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id474602" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id439095-bb"/>create_time(FILETIME &amp; ft) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id376408"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/parse_format_base.hpp">boost/date_time/parse_format_base.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id474636" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Enum for distinguishing parsing and formatting options. </fo:block></fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:wrapper id="id405073"/>month_format_spec { month_as_integer, month_as_short_string, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;month_as_long_string };
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:basic-link internal-destination="id417225">ymd_order_spec</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="id417225"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Type ymd_order_spec</fo:block></fo:block><fo:block space-after="1em">Type ymd_order_spec <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Enum for distinguishing the order of Month, Day, &amp; Year. </fo:block></fo:block><fo:block>boost::date_time::ymd_order_spec</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id474719"><fo:block/><fo:block id="id474720" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">

<fo:inline font-weight="bold">enum</fo:inline> ymd_order_spec { ymd_order_iso, ymd_order_dmy, ymd_order_us };</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id341416"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/period.hpp">boost/date_time/period.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This file contain the implementation of the period abstraction. This is basically the same idea as a range. Although this class is intended for use in the time library, it is pretty close to general enough for other numeric uses.</fo:block><fo:block id="id474755" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> point_rep, <fo:inline font-weight="bold">typename</fo:inline> duration_rep&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="period"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template period</fo:block></fo:block><fo:block space-after="1em">Class template period <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Provides generalized period type useful in date-time systems. </fo:block></fo:block><fo:block>boost::date_time::period</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id474829"><fo:block/><fo:block id="id474830" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> point_rep, <fo:inline font-weight="bold">typename</fo:inline> duration_rep&gt; 
<fo:inline font-weight="bold">class</fo:inline> period {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> point_rep&#xA0;&#xA0;&#xA0; point_type;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> duration_rep duration_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="periodconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id331915-bb">period</fo:basic-link>(point_rep, point_rep);
&#xA0;&#xA0;<fo:basic-link internal-destination="id374831-bb">period</fo:basic-link>(point_rep, duration_rep);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id342658-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;point_rep <fo:basic-link internal-destination="id388709-bb">begin</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;point_rep <fo:basic-link internal-destination="id328284-bb">end</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;point_rep <fo:basic-link internal-destination="id309120-bb">last</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_rep <fo:basic-link internal-destination="id368078-bb">length</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id301322-bb">is_null</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id431225-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id367574-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id334269-bb">shift</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> duration_rep &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id371031-bb">contains</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> point_rep &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id414868-bb">contains</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id439120-bb">intersects</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id367980-bb">is_adjacent</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id311046-bb">is_before</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> point_rep &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id410254-bb">is_after</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> point_rep &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="period">period</fo:basic-link> <fo:basic-link internal-destination="id318377-bb">intersection</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="period">period</fo:basic-link> <fo:basic-link internal-destination="id410989-bb">merge</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="period">period</fo:basic-link> <fo:basic-link internal-destination="id304882-bb">span</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id475467"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This template uses a class to represent a time point within the period and another class to represent a duration. As a result, this class is not appropriate for use when the number and duration representation are the same (eg: in the regular number domain).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A period can be specified by providing either the starting point and a duration or the starting point and the end point( end is NOT part of the period but 1 unit past it. A period will be "invalid" if either start_point &gt;= end_point or the given duration is &lt; 0. Any valid period will return false for is_null().</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Zero length periods are considered valid. In this case the start point is exactly 1 unit less than the end point, in other words start is equal to last.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In the case that the begin and last are the same, the period has a length of zero units. For example, suppose this is a period of days. That is, each time-point represents a single day. If the start and the last is the same day then the period is zero length.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The best way to handle periods is usually to provide a start point and a duration. So, day1 + 7 days is a week period which includes all of the first day and 6 more days (eg: Sun to Sat). </fo:block><fo:block id="id475506"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">period construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="periodconstruct-copy-destruct"/><fo:inline font-family="monospace">period</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id475522" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id475528" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id475530" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id331915-bb"/>period(point_rep first_point, point_rep end_point);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">create a period from begin to last eg: [begin,end) </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If end &lt;= begin then the period will be invalid </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id475553" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id475555" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id374831-bb"/>period(point_rep first_point, duration_rep len);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">create a period as [begin, begin+len) </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If len is &lt; 0 then the period will be invalid </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id475577"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">period public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id342658-bb"/><fo:inline font-family="monospace">period</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id475592" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id475598" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id475600" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">point_rep <fo:wrapper id="id388709-bb"/>begin() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the first element in the period. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id475627" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id475629" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">point_rep <fo:wrapper id="id328284-bb"/>end() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return one past the last element. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id475656" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id475658" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">point_rep <fo:wrapper id="id309120-bb"/>last() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the last item in the period. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id475685" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id475688" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_rep <fo:wrapper id="id368078-bb"/>length() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the length of the period. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id475714" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id475716" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id301322-bb"/>is_null() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">True if period is ill formed (length less than zero). </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id475747" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id475750" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id431225-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equality operator. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id475799" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id475801" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id367574-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Strict as defined by rhs.last &lt;= lhs.last. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id475851" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id475854" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id334269-bb"/>shift(<fo:inline font-weight="bold">const</fo:inline> duration_rep &amp; d) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Shift the start and end by the specified amount. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id475885" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id475888" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id371031-bb"/>contains(<fo:inline font-weight="bold">const</fo:inline> point_rep &amp; point) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">True if the point is inside the period. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id475925" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id475927" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id414868-bb"/>contains(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp; other) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">True if this period fully contains (or equals) the other period. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id475973" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id475975" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id439120-bb"/>intersects(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp; other) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">True if the periods overlap in any way. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id476020" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id476022" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id367980-bb"/>is_adjacent(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp; other) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">True if periods are next to each other without a gap. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id476067" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>13.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id476070" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id311046-bb"/>is_before(<fo:inline font-weight="bold">const</fo:inline> point_rep &amp; point) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">True if all of the period is prior to the passed point or end &lt;= t. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id476109" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>14.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id476111" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id410254-bb"/>is_after(<fo:inline font-weight="bold">const</fo:inline> point_rep &amp; point) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">True if all of the period is prior or t &lt; start. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id476149" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>15.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id476152" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="period">period</fo:basic-link> <fo:wrapper id="id318377-bb"/>intersection(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp; other) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns the period of intersection or invalid range no intersection. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id476198" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>16.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id476200" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="period">period</fo:basic-link> <fo:wrapper id="id410989-bb"/>merge(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp; other) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns the union of intersecting periods -- or null period. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id476247" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>17.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id476249" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="period">period</fo:basic-link> <fo:wrapper id="id304882-bb"/>span(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="period">period</fo:basic-link> &amp; other) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Combine two periods with earliest start and latest end. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Combines two periods and any gap between them such that start = min(p1.start, p2.start) end = max(p1.end , p2.end) <fo:block id="id476300" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">        [---p1---)
                       [---p2---)
 result:
        [-----------p3----------) 
   *
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id404576"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/special_defs.hpp">boost/date_time/special_defs.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id476323" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:wrapper id="id407341"/>special_values { not_a_date_time, neg_infin, pos_infin, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;min_date_time, max_date_time, not_special, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;NumSpecialValues };
&#xA0;&#xA0;}
}</fo:block></fo:block><fo:block id="id373457"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/time.hpp">boost/date_time/time.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This file contains the interface for the time associated classes.</fo:block><fo:block id="id476379" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, <fo:inline font-weight="bold">typename</fo:inline> time_system&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="base_time">base_time</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="base_time"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template base_time</fo:block></fo:block><fo:block space-after="1em">Class template base_time <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Representation of a precise moment in time, including the date. </fo:block></fo:block><fo:block>boost::date_time::base_time</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id476455"><fo:block/><fo:block id="id476456" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, <fo:inline font-weight="bold">typename</fo:inline> time_system&gt; 
<fo:inline font-weight="bold">class</fo:inline> base_time {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_system::time_rep_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_rep_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_system::date_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_system::date_duration_type date_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_system::time_duration_type time_duration_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="base_timeconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id423414-bb">base_time</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;dst_flags = not_dst);
&#xA0;&#xA0;<fo:basic-link internal-destination="id323093-bb">base_time</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id366790-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id297973-bb">date</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;time_duration_type <fo:basic-link internal-destination="id365480-bb">time_of_day</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;std::string <fo:basic-link internal-destination="id370440-bb">zone_name</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id413641-bb">is_not_a_date_time</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id345886-bb">is_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id334767-bb">is_pos_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id299035-bb">is_neg_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id418938-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id377164-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;time_duration_type <fo:basic-link internal-destination="id405816-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id340986-bb"><fo:inline font-weight="bold">operator</fo:inline>+</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id327884-bb"><fo:inline font-weight="bold">operator</fo:inline>+=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp;) ;
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id333494-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id413628-bb"><fo:inline font-weight="bold">operator</fo:inline>-=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp;) ;
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id381629-bb"><fo:inline font-weight="bold">operator</fo:inline>+</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id306414-bb"><fo:inline font-weight="bold">operator</fo:inline>+=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;) ;
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id322540-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id349634-bb"><fo:inline font-weight="bold">operator</fo:inline>-=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id477097"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This class is a skeleton for the interface of a temporal type with a resolution that is higher than a day. It is intended that this class be the base class and that the actual time class be derived using the BN pattern. In this way, the derived class can make decisions such as 'should there be a default constructor' and what should it set its value to, should there be optional constructors say allowing only an time_durations that generate a time from a clock,etc. So, in fact multiple time types can be created for a time_system with different construction policies, and all of them can perform basic operations by only writing a copy constructor. Finally, compiler errors are also shorter.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The real behavior of the time class is provided by the time_system template parameter. This class must provide all the logic for addition, subtraction, as well as define all the interface types. </fo:block><fo:block id="id477117"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">base_time construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="base_timeconstruct-copy-destruct"/><fo:inline font-family="monospace">base_time</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id477134" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id477140" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477142" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id423414-bb"/>base_time(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; day, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; td, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;dst_flags dst = not_dst);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477170" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477173" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id323093-bb"/>base_time(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; rhs);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id477193"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">base_time public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id366790-bb"/><fo:inline font-family="monospace">base_time</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id477208" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id477215" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477217" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id297973-bb"/>date() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477241" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477243" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type <fo:wrapper id="id365480-bb"/>time_of_day() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477267" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477269" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::string <fo:wrapper id="id370440-bb"/>zone_name() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477292" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477295" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id413641-bb"/>is_not_a_date_time() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">check to see if date is not a value </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477324" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477327" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id345886-bb"/>is_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">check to see if date is one of the infinity values </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477357" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477360" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id334767-bb"/>is_pos_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">check to see if date is greater than all possible dates </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477391" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477393" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id299035-bb"/>is_neg_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">check to see if date is greater than all possible dates </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477424" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477427" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id418938-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equality operator -- others generated by boost::equality_comparable. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477469" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477471" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id377164-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Equality operator -- others generated by boost::less_than_comparable. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477514" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477517" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type <fo:wrapper id="id405816-bb"/><fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">difference between two times </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477555" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477558" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id340986-bb"/><fo:inline font-weight="bold">operator</fo:inline>+(<fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp; dd) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">add date durations </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477596" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477599" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id327884-bb"/><fo:inline font-weight="bold">operator</fo:inline>+=(<fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp; dd) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477628" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>13.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477631" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id333494-bb"/><fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp; dd) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">subtract date durations </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477669" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>14.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477672" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id413628-bb"/><fo:inline font-weight="bold">operator</fo:inline>-=(<fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp; dd) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477701" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>15.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477704" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id381629-bb"/><fo:inline font-weight="bold">operator</fo:inline>+(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; td) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">add time durations </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477742" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>16.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477745" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id306414-bb"/><fo:inline font-weight="bold">operator</fo:inline>+=(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; td) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477774" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>17.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477777" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id322540-bb"/><fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">subtract time durations </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id477815" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>18.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id477817" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id349634-bb"/><fo:inline font-weight="bold">operator</fo:inline>-=(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; td) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id347523"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/time_clock.hpp">boost/date_time/time_clock.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This file contains the interface for clock devices.</fo:block><fo:block id="id477867" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> time_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="second_clock">second_clock</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="second_clock"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template second_clock</fo:block></fo:block><fo:block space-after="1em">Class template second_clock <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A clock providing time level services based on C time_t capabilities. </fo:block></fo:block><fo:block>boost::date_time::second_clock</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id477943"><fo:block/><fo:block id="id477944" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> date_type, <fo:inline font-weight="bold">typename</fo:inline> time_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> second_clock {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::time_duration_type time_duration_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id428262-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id421481-bb">local_time</fo:basic-link>() ;
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id367700-bb">universal_time</fo:basic-link>() ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id337896-bb">private static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id348710-bb">create_time</fo:basic-link>(::std::tm *) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id478061"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This clock provides resolution to the 1 second level </fo:block><fo:block id="id478068"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">second_clock public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id428262-bb"/><fo:inline font-family="monospace">second_clock</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id478083" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id478090" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id478092" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id421481-bb"/>local_time() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id478109" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id478112" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id367700-bb"/>universal_time() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Get the current day in universal date as a ymd_type. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id478133"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">second_clock private static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id337896-bb"/><fo:inline font-family="monospace">second_clock</fo:inline> private static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id478148" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id478154" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id478156" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id348710-bb"/>create_time(::std::tm * current) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id390099"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/time_defs.hpp">boost/date_time/time_defs.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This file contains nice definitions for handling the resoluion of various time reprsentations.</fo:block><fo:block id="id478195" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines some nice types for handling time level resolutions. </fo:block></fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:wrapper id="id339358"/>time_resolutions { sec, tenth, hundreth, milli, ten_thousandth, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;micro, nano, NumResolutions };

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Flags for daylight savings or summer time. </fo:block></fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:wrapper id="id418358"/>dst_flags { not_dst, is_dst, calculate };
&#xA0;&#xA0;}
}</fo:block></fo:block><fo:block id="id404841"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/time_duration.hpp">boost/date_time/time_duration.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id478278" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, <fo:inline font-weight="bold">typename</fo:inline> rep_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id351182">time_duration</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> base_duration, <fo:inline font-weight="bold">long</fo:inline> frac_of_second&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="subsecond_duration">subsecond_duration</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="id351182"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template time_duration</fo:block></fo:block><fo:block space-after="1em">Class template time_duration <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Represents some amount of elapsed time measure to a given resolution. </fo:block></fo:block><fo:block>boost::date_time::time_duration</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id478391"><fo:block/><fo:block id="id478392" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, <fo:inline font-weight="bold">typename</fo:inline> rep_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> time_duration {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; duration_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> rep_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; traits_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> rep_type::day_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; day_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> rep_type::hour_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; hour_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> rep_type::min_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; min_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> rep_type::sec_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; sec_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> rep_type::fractional_seconds_type fractional_seconds_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> rep_type::tick_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; tick_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> rep_type::impl_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; impl_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id351182construct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id328523-bb">time_duration</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id328526-bb">time_duration</fo:basic-link>(hour_type, min_type, sec_type = 0, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;fractional_seconds_type = 0);
&#xA0;&#xA0;<fo:basic-link internal-destination="id356831-bb">time_duration</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="id351182">time_duration</fo:basic-link>&lt; T, rep_type &gt; &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id409998-bb">time_duration</fo:basic-link>(special_values);
&#xA0;&#xA0;<fo:basic-link internal-destination="id415264-bb">time_duration</fo:basic-link>(impl_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id389063-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;hour_type <fo:basic-link internal-destination="id352370-bb">hours</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;min_type <fo:basic-link internal-destination="id420513-bb">minutes</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;sec_type <fo:basic-link internal-destination="id426406-bb">seconds</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;sec_type <fo:basic-link internal-destination="id344583-bb">total_seconds</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;tick_type <fo:basic-link internal-destination="id398744-bb">total_milliseconds</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;tick_type <fo:basic-link internal-destination="id396261-bb">total_nanoseconds</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;tick_type <fo:basic-link internal-destination="id353188-bb">total_microseconds</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;fractional_seconds_type <fo:basic-link internal-destination="id393123-bb">fractional_seconds</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id378900-bb">invert_sign</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id306343-bb">is_negative</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id324939-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="id351182">time_duration</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id419986-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="id351182">time_duration</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id381887-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id436164-bb"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id384923-bb"><fo:inline font-weight="bold">operator</fo:inline>+</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id420140-bb"><fo:inline font-weight="bold">operator</fo:inline>/</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>) ;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id426320-bb"><fo:inline font-weight="bold">operator</fo:inline>-=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp;) ;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id335015-bb"><fo:inline font-weight="bold">operator</fo:inline>+=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp;) ;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id396433-bb"><fo:inline font-weight="bold">operator</fo:inline>/=</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>) ;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id397252-bb"><fo:inline font-weight="bold">operator</fo:inline> *</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id394738-bb"><fo:inline font-weight="bold">operator</fo:inline> *=</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>) ;
&#xA0;&#xA0;tick_type <fo:basic-link internal-destination="id421383-bb">ticks</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id387277-bb">is_special</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id313944-bb">is_pos_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id413314-bb">is_neg_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id285380-bb">is_not_a_date_time</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;impl_type <fo:basic-link internal-destination="id385828-bb">get_rep</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id414557-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;duration_type <fo:basic-link internal-destination="id414563-bb">unit</fo:basic-link>() ;
&#xA0;&#xA0;tick_type <fo:basic-link internal-destination="id428982-bb">ticks_per_second</fo:basic-link>() ;
&#xA0;&#xA0;time_resolutions <fo:basic-link internal-destination="id378100-bb">resolution</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:basic-link internal-destination="id364666-bb">num_fractional_digits</fo:basic-link>() ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id312040-bb">protected member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id479370"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This class represents a standard set of capabilities for all counted time durations. Time duration implementations should derive from this class passing their type as the first template parameter. This design allows the subclass duration types to provide custom construction policies or other custom features not provided here.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block id="id479383"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_duration construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id351182construct-copy-destruct"/><fo:inline font-family="monospace">time_duration</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id479399" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id479405" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479407" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id328523-bb"/>time_duration();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479421" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479424" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id328526-bb"/>time_duration(hour_type hours, min_type minutes, sec_type seconds = 0, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;fractional_seconds_type frac_sec = 0);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479439" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479442" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id356831-bb"/>time_duration(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="id351182">time_duration</fo:basic-link>&lt; T, rep_type &gt; &amp; other);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct from another time_duration (Copy constructor). </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479473" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479476" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id409998-bb"/>time_duration(special_values sv);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct from special_values. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479493" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479495" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id415264-bb"/>time_duration(impl_type in);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id479509"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_duration public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id389063-bb"/><fo:inline font-family="monospace">time_duration</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id479524" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id479530" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479532" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">hour_type <fo:wrapper id="id352370-bb"/>hours() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns number of hours in the duration. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479559" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479562" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">min_type <fo:wrapper id="id420513-bb"/>minutes() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns normalized number of minutes. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479589" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479591" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">sec_type <fo:wrapper id="id426406-bb"/>seconds() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns normalized number of seconds (0..60). </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479618" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479620" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">sec_type <fo:wrapper id="id344583-bb"/>total_seconds() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns total number of seconds truncating any fractional seconds. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479648" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479650" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">tick_type <fo:wrapper id="id398744-bb"/>total_milliseconds() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns total number of milliseconds truncating any fractional seconds. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479678" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479680" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">tick_type <fo:wrapper id="id396261-bb"/>total_nanoseconds() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns total number of nanoseconds truncating any sub millisecond values. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479708" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479710" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">tick_type <fo:wrapper id="id353188-bb"/>total_microseconds() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns total number of microseconds truncating any sub microsecond values. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479738" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479740" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">fractional_seconds_type <fo:wrapper id="id393123-bb"/>fractional_seconds() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns count of fractional seconds at given resolution. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479768" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479770" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id378900-bb"/>invert_sign() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479794" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479796" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id306343-bb"/>is_negative() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479823" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479826" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id324939-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="id351182">time_duration</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479872" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479875" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id419986-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="id351182">time_duration</fo:basic-link> &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479922" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>13.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479924" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id381887-bb"/><fo:inline font-weight="bold">operator</fo:inline>-() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">unary- Allows for time_duration td = -td1 </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479956" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>14.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479958" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id436164-bb"/><fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id479994" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>15.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id479996" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id384923-bb"/><fo:inline font-weight="bold">operator</fo:inline>+(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp; d) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480032" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>16.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480034" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id420140-bb"/><fo:inline font-weight="bold">operator</fo:inline>/(<fo:inline font-weight="bold">int</fo:inline> divisor) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480063" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>17.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480066" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id426320-bb"/><fo:inline font-weight="bold">operator</fo:inline>-=(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp; d) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480095" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>18.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480097" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id335015-bb"/><fo:inline font-weight="bold">operator</fo:inline>+=(<fo:inline font-weight="bold">const</fo:inline> duration_type &amp; d) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480127" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>19.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480129" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id396433-bb"/><fo:inline font-weight="bold">operator</fo:inline>/=(<fo:inline font-weight="bold">int</fo:inline> divisor) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Division operations on a duration with an integer. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480161" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>20.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480164" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id397252-bb"/><fo:inline font-weight="bold">operator</fo:inline> *(<fo:inline font-weight="bold">int</fo:inline> rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Multiplication operations an a duration with an integer. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480202" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>21.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480204" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id394738-bb"/><fo:inline font-weight="bold">operator</fo:inline> *=(<fo:inline font-weight="bold">int</fo:inline> divisor) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480233" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>22.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480236" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">tick_type <fo:wrapper id="id421383-bb"/>ticks() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480260" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>23.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480262" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id387277-bb"/>is_special() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Is ticks_ a special value? </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480292" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>24.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480295" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id313944-bb"/>is_pos_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Is duration pos-infinity. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480325" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>25.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480328" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id413314-bb"/>is_neg_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Is duration neg-infinity. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480358" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>26.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480361" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id285380-bb"/>is_not_a_date_time() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Is duration not-a-date-time. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480391" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>27.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480393" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">impl_type <fo:wrapper id="id385828-bb"/>get_rep() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Used for special_values output. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id480420"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_duration public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id414557-bb"/><fo:inline font-family="monospace">time_duration</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id480435" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id480441" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480444" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">duration_type <fo:wrapper id="id414563-bb"/>unit() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns smallest representable duration. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480464" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480467" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">tick_type <fo:wrapper id="id428982-bb"/>ticks_per_second() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the number of ticks in a second. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480488" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480490" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_resolutions <fo:wrapper id="id378100-bb"/>resolution() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Provide the resolution of this duration type. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id480510" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480513" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:wrapper id="id364666-bb"/>num_fractional_digits() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns number of possible digits in fractional seconds. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id480544"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_duration protected member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id312040-bb"/><fo:inline font-family="monospace">time_duration</fo:inline> protected member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id480559" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="subsecond_duration"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template subsecond_duration</fo:block></fo:block><fo:block space-after="1em">Class template subsecond_duration <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Template for instantiating derived adjusting durations. </fo:block></fo:block><fo:block>boost::date_time::subsecond_duration</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id480588"><fo:block/><fo:block id="id480589" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> base_duration, <fo:inline font-weight="bold">long</fo:inline> frac_of_second&gt; 
<fo:inline font-weight="bold">class</fo:inline> subsecond_duration {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> base_duration::traits_type traits_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="subsecond_durationconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id417384-bb">subsecond_duration</fo:basic-link>(<fo:inline font-weight="bold">long</fo:inline>);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id400729-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id480682"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id480685"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">subsecond_duration construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="subsecond_durationconstruct-copy-destruct"/><fo:inline font-family="monospace">subsecond_duration</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id480702" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id480708" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id480710" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id417384-bb"/>subsecond_duration(<fo:inline font-weight="bold">long</fo:inline> ss);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id480731"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">subsecond_duration public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id400729-bb"/><fo:inline font-family="monospace">subsecond_duration</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id480746" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id435250"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/time_formatting_streams.hpp">boost/date_time/time_formatting_streams.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id480769" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_duration_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id401643">ostream_time_duration_formatter</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="ostream_time_formatter">ostream_time_formatter</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_period_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id379036">ostream_time_period_formatter</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="id401643"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template ostream_time_duration_formatter</fo:block></fo:block><fo:block space-after="1em">Class template ostream_time_duration_formatter <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Put a time type into a stream using appropriate facets. </fo:block></fo:block><fo:block>boost::date_time::ostream_time_duration_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id480941"><fo:block/><fo:block id="id480942" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_duration_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
<fo:inline font-weight="bold">class</fo:inline> ostream_time_duration_formatter {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::basic_ostream&lt; charT &gt;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ostream_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_duration_type::fractional_seconds_type fractional_seconds_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id325896-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id319677-bb">duration_put</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;, ostream_type &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id481045"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id481049"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">ostream_time_duration_formatter public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id325896-bb"/><fo:inline font-family="monospace">ostream_time_duration_formatter</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id481065" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id481071" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id481073" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id319677-bb"/>duration_put(<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; td, ostream_type &amp; os) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Put time into an ostream. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ostream_time_formatter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template ostream_time_formatter</fo:block></fo:block><fo:block space-after="1em">Class template ostream_time_formatter <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Put a time type into a stream using appropriate facets. </fo:block></fo:block><fo:block>boost::date_time::ostream_time_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id481128"><fo:block/><fo:block id="id481129" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
<fo:inline font-weight="bold">class</fo:inline> ostream_time_formatter {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::basic_ostream&lt; charT &gt;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ostream_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::date_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::time_duration_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="id401643">ostream_time_duration_formatter</fo:basic-link>&lt; time_duration_type, charT &gt; duration_formatter;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id303032-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id315961-bb">time_put</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;, ostream_type &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id481257"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id481261"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">ostream_time_formatter public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id303032-bb"/><fo:inline font-family="monospace">ostream_time_formatter</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id481276" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id481282" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id481284" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id315961-bb"/>time_put(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; t, ostream_type &amp; os) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Put time into an ostream. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id379036"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template ostream_time_period_formatter</fo:block></fo:block><fo:block space-after="1em">Class template ostream_time_period_formatter <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Put a time period into a stream using appropriate facets. </fo:block></fo:block><fo:block>boost::date_time::ostream_time_period_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id481338"><fo:block/><fo:block id="id481339" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_period_type, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
<fo:inline font-weight="bold">class</fo:inline> ostream_time_period_formatter {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::basic_ostream&lt; charT &gt;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ostream_type;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_period_type::point_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="ostream_time_formatter">ostream_time_formatter</fo:basic-link>&lt; time_type, charT &gt; time_formatter;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id423339-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id423345-bb">period_put</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_period_type &amp;, ostream_type &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id481458"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id481462"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">ostream_time_period_formatter public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id423339-bb"/><fo:inline font-family="monospace">ostream_time_period_formatter</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id481477" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id481483" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id481486" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id423345-bb"/>period_put(<fo:inline font-weight="bold">const</fo:inline> time_period_type &amp; tp, ostream_type &amp; os) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Put time into an ostream. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id322749"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/time_iterator.hpp">boost/date_time/time_iterator.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id481534" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="time_itr">time_itr</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="time_itr"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template time_itr</fo:block></fo:block><fo:block space-after="1em">Class template time_itr <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Simple time iterator skeleton class. </fo:block></fo:block><fo:block>boost::date_time::time_itr</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id481603"><fo:block/><fo:block id="id481604" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type&gt; 
<fo:inline font-weight="bold">class</fo:inline> time_itr {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_type::time_duration_type time_duration_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="time_itrconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id331817-bb">time_itr</fo:basic-link>(time_type, time_duration_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id404130-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="time_itr">time_itr</fo:basic-link> &amp; <fo:basic-link internal-destination="id404136-bb"><fo:inline font-weight="bold">operator</fo:inline>++</fo:basic-link>() ;
&#xA0;&#xA0;<fo:basic-link internal-destination="time_itr">time_itr</fo:basic-link> &amp; <fo:basic-link internal-destination="id414005-bb"><fo:inline font-weight="bold">operator</fo:inline>--</fo:basic-link>() ;
&#xA0;&#xA0;time_type <fo:basic-link internal-destination="id320162-bb"><fo:inline font-weight="bold">operator</fo:inline> *</fo:basic-link>() ;
&#xA0;&#xA0;time_type * <fo:basic-link internal-destination="id413457-bb"><fo:inline font-weight="bold">operator</fo:inline>-&gt;</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id354252-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id323801-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id373646-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id321068-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id304236-bb"><fo:inline font-weight="bold">operator</fo:inline>&gt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id316222-bb"><fo:inline font-weight="bold">operator</fo:inline>&gt;=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_type &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id481946"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id481950"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_itr construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="time_itrconstruct-copy-destruct"/><fo:inline font-family="monospace">time_itr</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id481965" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id481971" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id481974" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id331817-bb"/>time_itr(time_type t, time_duration_type d);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id481988"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_itr public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id404130-bb"/><fo:inline font-family="monospace">time_itr</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id482003" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id482009" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id482011" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="time_itr">time_itr</fo:basic-link> &amp; <fo:wrapper id="id404136-bb"/><fo:inline font-weight="bold">operator</fo:inline>++() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id482040" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id482043" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="time_itr">time_itr</fo:basic-link> &amp; <fo:wrapper id="id414005-bb"/><fo:inline font-weight="bold">operator</fo:inline>--() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id482071" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id482074" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type <fo:wrapper id="id320162-bb"/><fo:inline font-weight="bold">operator</fo:inline> *() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id482096" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id482099" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_type * <fo:wrapper id="id413457-bb"/><fo:inline font-weight="bold">operator</fo:inline>-&gt;() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id482121" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id482124" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id354252-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; t) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id482157" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id482159" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id323801-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;=(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; t) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id482192" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id482194" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id373646-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; t) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id482227" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id482230" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id321068-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; t) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id482262" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id482265" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id304236-bb"/><fo:inline font-weight="bold">operator</fo:inline>&gt;(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; t) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id482298" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id482300" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id316222-bb"/><fo:inline font-weight="bold">operator</fo:inline>&gt;=(<fo:inline font-weight="bold">const</fo:inline> time_type &amp; t) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id364961"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/time_parsing.hpp">boost/date_time/time_parsing.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id482349" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_duration&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id351182">time_duration</fo:basic-link> <fo:basic-link internal-destination="id367349">parse_delimited_time_duration</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Utility function to split appart string. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id332099"/>split(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; s, <fo:inline font-weight="bold">char</fo:inline> sep, std::string &amp; first, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::string &amp; second);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;time_type <fo:wrapper id="parse_delimited_time"/>parse_delimited_time(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; s, <fo:inline font-weight="bold">char</fo:inline> sep);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Parse time duration part of an iso time of form: [-]hhmmss (eg: 120259 is 12 hours 2 min 59 seconds). </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_duration&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id351182">time_duration</fo:basic-link> <fo:wrapper id="id422876"/>parse_undelimited_time_duration(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; s);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Parse time string of form YYYYMMDDThhmmss where T is delimeter between date and time. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;time_type <fo:wrapper id="parse_iso_time"/>parse_iso_time(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; s, <fo:inline font-weight="bold">char</fo:inline> sep);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="id367349"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function template parse_delimited_time_duration</fo:block></fo:block><fo:block space-after="1em">Function template parse_delimited_time_duration <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Creates a time_duration object from a delimited string. </fo:block></fo:block><fo:block>boost::date_time::parse_delimited_time_duration</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id482593"><fo:block/><fo:block id="id482594" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_duration&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="id351182">time_duration</fo:basic-link> parse_delimited_time_duration(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; s);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id482629"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Expected format for string is "[-]h[h][:mm][:ss][.fff]". A negative duration will be created if the first character in string is a '-', all other '-' will be treated as delimiters. Accepted delimiters are "-:,.". </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id316460"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/time_resolution_traits.hpp">boost/date_time/time_resolution_traits.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id482656" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="id329534">time_resolution_traits_bi32_impl</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="id361126">time_resolution_traits_adapted32_impl</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="id434902">time_resolution_traits_bi64_impl</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="id430258">time_resolution_traits_adapted64_impl</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> frac_sec_type, time_resolutions res, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;#<fo:inline font-weight="bold">if</fo:inline>(defined(BOOST_MSVC)&amp;&amp;(_MSC_VER&lt;=1200)) boost::int64_t resolution_adjust, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;#<fo:inline font-weight="bold">else</fo:inline> <fo:inline font-weight="bold">typename</fo:inline> frac_sec_type::int_type resolution_adjust, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;#endif <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> frac_digits, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> v_type = boost::int32_t&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="time_resolution_traits">time_resolution_traits</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_resolution_traits&lt; <fo:basic-link internal-destination="id361126">time_resolution_traits_adapted32_impl</fo:basic-link>, milli, 1000, 3 &gt; milli_res;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_resolution_traits&lt; <fo:basic-link internal-destination="id430258">time_resolution_traits_adapted64_impl</fo:basic-link>, micro, 1000000, 6 &gt; micro_res;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_resolution_traits&lt; <fo:basic-link internal-destination="id430258">time_resolution_traits_adapted64_impl</fo:basic-link>, nano, 1000000000, 9 &gt; nano_res;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Simple function to calculate absolute value of a numeric type. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; T <fo:wrapper id="absolute_value"/>absolute_value(T x);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="id329534"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct time_resolution_traits_bi32_impl</fo:block></fo:block><fo:block space-after="1em">Struct time_resolution_traits_bi32_impl <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">traits struct for time_resolution_traits implementation type </fo:block></fo:block><fo:block>boost::date_time::time_resolution_traits_bi32_impl</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id482919"><fo:block/><fo:block id="id482921" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> time_resolution_traits_bi32_impl {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::int32_t int_type;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::int32_t impl_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id409641-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id420146-bb">as_number</fo:basic-link>(impl_type) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id328099-bb">is_adapted</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id482996"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id483000"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_resolution_traits_bi32_impl public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id409641-bb"/><fo:inline font-family="monospace">time_resolution_traits_bi32_impl</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id483016" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id483022" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id483024" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id420146-bb"/>as_number(impl_type i) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id483042" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id483045" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id328099-bb"/>is_adapted() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Used to determine if implemented type is int_adapter or int. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id361126"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct time_resolution_traits_adapted32_impl</fo:block></fo:block><fo:block space-after="1em">Struct time_resolution_traits_adapted32_impl <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">traits struct for time_resolution_traits implementation type </fo:block></fo:block><fo:block>boost::date_time::time_resolution_traits_adapted32_impl</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id483091"><fo:block/><fo:block id="id483092" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> time_resolution_traits_adapted32_impl {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::int32_t&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; int_type;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="int_adapter">boost::date_time::int_adapter</fo:basic-link>&lt; boost::int32_t &gt; impl_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id341072-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id341079-bb">as_number</fo:basic-link>(impl_type) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id425167-bb">is_adapted</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id483178"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id483182"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_resolution_traits_adapted32_impl public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id341072-bb"/><fo:inline font-family="monospace">time_resolution_traits_adapted32_impl</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id483197" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id483203" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id483206" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id341079-bb"/>as_number(impl_type i) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id483224" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id483226" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id425167-bb"/>is_adapted() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Used to determine if implemented type is int_adapter or int. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id434902"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct time_resolution_traits_bi64_impl</fo:block></fo:block><fo:block space-after="1em">Struct time_resolution_traits_bi64_impl <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">traits struct for time_resolution_traits implementation type </fo:block></fo:block><fo:block>boost::date_time::time_resolution_traits_bi64_impl</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id483272"><fo:block/><fo:block id="id483274" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> time_resolution_traits_bi64_impl {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::int64_t int_type;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::int64_t impl_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id407000-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id407006-bb">as_number</fo:basic-link>(impl_type) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id394548-bb">is_adapted</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id483349"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id483353"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_resolution_traits_bi64_impl public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id407000-bb"/><fo:inline font-family="monospace">time_resolution_traits_bi64_impl</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id483369" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id483375" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id483377" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id407006-bb"/>as_number(impl_type i) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id483395" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id483398" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id394548-bb"/>is_adapted() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Used to determine if implemented type is int_adapter or int. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id430258"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct time_resolution_traits_adapted64_impl</fo:block></fo:block><fo:block space-after="1em">Struct time_resolution_traits_adapted64_impl <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">traits struct for time_resolution_traits implementation type </fo:block></fo:block><fo:block>boost::date_time::time_resolution_traits_adapted64_impl</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id483444"><fo:block/><fo:block id="id483445" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> time_resolution_traits_adapted64_impl {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::int64_t&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; int_type;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="int_adapter">boost::date_time::int_adapter</fo:basic-link>&lt; boost::int64_t &gt; impl_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id408463-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id305399-bb">as_number</fo:basic-link>(impl_type) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id370669-bb">is_adapted</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id483530"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id483534"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_resolution_traits_adapted64_impl public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id408463-bb"/><fo:inline font-family="monospace">time_resolution_traits_adapted64_impl</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id483550" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id483556" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id483558" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id305399-bb"/>as_number(impl_type i) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id483577" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id483579" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id370669-bb"/>is_adapted() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Used to determine if implemented type is int_adapter or int. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="time_resolution_traits"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template time_resolution_traits</fo:block></fo:block><fo:block space-after="1em">Class template time_resolution_traits <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::date_time::time_resolution_traits</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id483622"><fo:block/><fo:block id="id483623" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> frac_sec_type, time_resolutions res, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;#<fo:inline font-weight="bold">if</fo:inline>(defined(BOOST_MSVC)&amp;&amp;(_MSC_VER&lt;=1200)) boost::int64_t resolution_adjust, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;#<fo:inline font-weight="bold">else</fo:inline> <fo:inline font-weight="bold">typename</fo:inline> frac_sec_type::int_type resolution_adjust, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;#endif <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> frac_digits, <fo:inline font-weight="bold">typename</fo:inline> v_type = boost::int32_t&gt; 
<fo:inline font-weight="bold">class</fo:inline> time_resolution_traits {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> frac_sec_type::int_type&#xA0; fractional_seconds_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> frac_sec_type::int_type&#xA0; tick_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> frac_sec_type::impl_type impl_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> v_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; day_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> v_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; hour_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> v_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; min_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> v_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; sec_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id405643-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0; <fo:basic-link internal-destination="id405648-bb">BOOST_STATIC_CONSTANT</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>, ticks_per_second = resolution_adjust) ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id372701-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;frac_sec_type::int_type <fo:basic-link internal-destination="id376258-bb">as_number</fo:basic-link>(<fo:inline font-weight="bold">typename</fo:inline> frac_sec_type::impl_type) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id393613-bb">is_adapted</fo:basic-link>() ;
&#xA0;&#xA0;time_resolutions <fo:basic-link internal-destination="id392830-bb">resolution</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:basic-link internal-destination="id338041-bb">num_fractional_digits</fo:basic-link>() ;
&#xA0;&#xA0;fractional_seconds_type <fo:basic-link internal-destination="id302892-bb">res_adjust</fo:basic-link>() ;
&#xA0;&#xA0;tick_type <fo:basic-link internal-destination="id428380-bb">to_tick_count</fo:basic-link>(hour_type, min_type, sec_type, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;fractional_seconds_type) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id483913"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id483917"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_resolution_traits public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id405643-bb"/><fo:inline font-family="monospace">time_resolution_traits</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id483932" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id483938" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id483940" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"> <fo:wrapper id="id405648-bb"/>BOOST_STATIC_CONSTANT(<fo:inline font-weight="bold">int</fo:inline> , ticks_per_second  = resolution_adjust) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id483964"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_resolution_traits public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id372701-bb"/><fo:inline font-family="monospace">time_resolution_traits</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id483979" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id483985" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id483987" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">frac_sec_type::int_type <fo:wrapper id="id376258-bb"/>as_number(<fo:inline font-weight="bold">typename</fo:inline> frac_sec_type::impl_type i) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484012" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484014" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id393613-bb"/>is_adapted() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484035" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484038" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_resolutions <fo:wrapper id="id392830-bb"/>resolution() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484055" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484058" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:wrapper id="id338041-bb"/>num_fractional_digits() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484086" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484088" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">fractional_seconds_type <fo:wrapper id="id302892-bb"/>res_adjust() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484105" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484108" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">tick_type <fo:wrapper id="id428380-bb"/>to_tick_count(hour_type hours, min_type minutes, sec_type seconds, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;fractional_seconds_type fs) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Any negative argument results in a negative tick_count. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id340438"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/time_system_counted.hpp">boost/date_time/time_system_counted.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id484151" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> config&gt; <fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="counted_time_rep">counted_time_rep</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_rep&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="counted_time_system">counted_time_system</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="counted_time_rep"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct template counted_time_rep</fo:block></fo:block><fo:block space-after="1em">Struct template counted_time_rep <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Time representation that uses a single integer count. </fo:block></fo:block><fo:block>boost::date_time::counted_time_rep</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id484251"><fo:block/><fo:block id="id484252" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> config&gt; 
<fo:inline font-weight="bold">struct</fo:inline> counted_time_rep {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> config::int_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; int_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> config::date_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> config::impl_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; impl_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::duration_type&#xA0;&#xA0; date_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::calendar_type&#xA0;&#xA0; calendar_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_type::ymd_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ymd_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> config::time_duration_type time_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> config::resolution_traits&#xA0; resolution_traits;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="counted_time_repconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id328765-bb">counted_time_rep</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id436918-bb">counted_time_rep</fo:basic-link>(int_type);
&#xA0;&#xA0;<fo:basic-link internal-destination="id315203-bb">counted_time_rep</fo:basic-link>(impl_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id427696-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id345360-bb">date</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id409169-bb">day_count</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id376069-bb">time_count</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id385014-bb">tod</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id371292-bb">is_pos_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id364071-bb">is_neg_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id322139-bb">is_not_a_date_time</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id306976-bb">is_special</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;impl_type <fo:basic-link internal-destination="id343329-bb">get_rep</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id353151-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id417030-bb">frac_sec_per_day</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id484638"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id484642"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">counted_time_rep construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="counted_time_repconstruct-copy-destruct"/><fo:inline font-family="monospace">counted_time_rep</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id484659" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id484665" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484668" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id328765-bb"/>counted_time_rep(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; d, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; tod);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484696" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484698" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id436918-bb"/>counted_time_rep(int_type count);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484711" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484714" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id315203-bb"/>counted_time_rep(impl_type count);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id484728"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">counted_time_rep public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id427696-bb"/><fo:inline font-family="monospace">counted_time_rep</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id484743" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id484749" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484751" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id345360-bb"/>date() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484775" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484777" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id409169-bb"/>day_count() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484801" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484803" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id376069-bb"/>time_count() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484827" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484829" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id385014-bb"/>tod() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484853" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484856" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id371292-bb"/>is_pos_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484883" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484885" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id364071-bb"/>is_neg_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484913" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484915" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id322139-bb"/>is_not_a_date_time() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484942" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484945" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id306976-bb"/>is_special() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id484972" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id484974" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">impl_type <fo:wrapper id="id343329-bb"/>get_rep() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id484998"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">counted_time_rep public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id353151-bb"/><fo:inline font-family="monospace">counted_time_rep</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id485013" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id485019" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id485022" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id417030-bb"/>frac_sec_per_day() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="counted_time_system"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template counted_time_system</fo:block></fo:block><fo:block space-after="1em">Class template counted_time_system <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An unadjusted time system implementation. </fo:block></fo:block><fo:block>boost::date_time::counted_time_system</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id485062"><fo:block/><fo:block id="id485063" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_rep&gt; 
<fo:inline font-weight="bold">class</fo:inline> counted_time_system {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_rep&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_rep_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_rep_type::impl_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; impl_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_rep_type::time_duration_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_duration_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_duration_type::fractional_seconds_type fractional_seconds_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_rep_type::date_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_rep_type::date_duration_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_duration_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id426276-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id347039-bb">unused_var</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> T &amp;) ;
&#xA0;&#xA0;time_rep_type 
&#xA0;&#xA0;<fo:basic-link internal-destination="id318744-bb">get_time_rep</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;date_time::dst_flags = not_dst) ;
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id422850-bb">get_date</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;) ;
&#xA0;&#xA0;time_duration_type <fo:basic-link internal-destination="id432729-bb">get_time_of_day</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;) ;
&#xA0;&#xA0;std::string <fo:basic-link internal-destination="id306662-bb">zone_name</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id338270-bb">is_equal</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id394315-bb">is_less</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;) ;
&#xA0;&#xA0;time_rep_type <fo:basic-link internal-destination="id413478-bb">add_days</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, <fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp;) ;
&#xA0;&#xA0;time_rep_type 
&#xA0;&#xA0;<fo:basic-link internal-destination="id422191-bb">subtract_days</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, <fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp;) ;
&#xA0;&#xA0;time_rep_type 
&#xA0;&#xA0;<fo:basic-link internal-destination="id329240-bb">subtract_time_duration</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;) ;
&#xA0;&#xA0;time_rep_type <fo:basic-link internal-destination="id339102-bb">add_time_duration</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, time_duration_type) ;
&#xA0;&#xA0;time_duration_type 
&#xA0;&#xA0;<fo:basic-link internal-destination="id285446-bb">subtract_times</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id485492"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id485496"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">counted_time_system public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id426276-bb"/><fo:inline font-family="monospace">counted_time_system</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id485511" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id485517" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id485519" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id347039-bb"/>unused_var(<fo:inline font-weight="bold">const</fo:inline> T &amp; ) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id485560" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id485563" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_rep_type 
<fo:wrapper id="id318744-bb"/>get_time_rep(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; day, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; tod, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;date_time::dst_flags dst = not_dst) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id485595" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id485598" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id422850-bb"/>get_date(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; val) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id485622" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id485624" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type <fo:wrapper id="id432729-bb"/>get_time_of_day(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; val) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id485650" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id485652" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::string <fo:wrapper id="id306662-bb"/>zone_name(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; ) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id485676" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id485679" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id338270-bb"/>is_equal(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; lhs, <fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id485714" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id485716" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id394315-bb"/>is_less(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; lhs, <fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id485751" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id485754" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_rep_type 
<fo:wrapper id="id413478-bb"/>add_days(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; base, <fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp; dd) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id485785" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id485788" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_rep_type 
<fo:wrapper id="id422191-bb"/>subtract_days(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; base, <fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp; dd) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id485819" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id485822" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_rep_type 
<fo:wrapper id="id329240-bb"/>subtract_time_duration(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; base, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; td) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id485855" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id485857" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_rep_type 
<fo:wrapper id="id339102-bb"/>add_time_duration(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; base, time_duration_type td) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id485883" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id485886" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type 
<fo:wrapper id="id285446-bb"/>subtract_times(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; lhs, <fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id354130"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/time_system_split.hpp">boost/date_time/time_system_split.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id485934" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> config, boost::int32_t ticks_per_second&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="split_timedate_system">split_timedate_system</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="split_timedate_system"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template split_timedate_system</fo:block></fo:block><fo:block space-after="1em">Class template split_timedate_system <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An unadjusted time system implementation. </fo:block></fo:block><fo:block>boost::date_time::split_timedate_system</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id486004"><fo:block/><fo:block id="id486006" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> config, boost::int32_t ticks_per_second&gt; 
<fo:inline font-weight="bold">class</fo:inline> split_timedate_system {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> config::time_rep_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_rep_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> config::date_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> config::time_duration_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> config::date_duration_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> config::int_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; int_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> config::resolution_traits&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; resolution_traits;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="wrapping_int">date_time::wrapping_int</fo:basic-link>&lt; int_type, INT64_C(86400)*ticks_per_second wrap_int_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="wrapping_int">date_time::wrapping_int</fo:basic-link>&lt; int_type, ticks_per_day &gt;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; wrap_int_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id309506-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;time_rep_type 
&#xA0;&#xA0;<fo:basic-link internal-destination="id302000-bb">get_time_rep</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;date_time::dst_flags = not_dst) ;
&#xA0;&#xA0;date_type <fo:basic-link internal-destination="id366478-bb">get_date</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;) ;
&#xA0;&#xA0;time_duration_type <fo:basic-link internal-destination="id436153-bb">get_time_of_day</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;) ;
&#xA0;&#xA0;std::string <fo:basic-link internal-destination="id427464-bb">zone_name</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id361895-bb">is_equal</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id363003-bb">is_less</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;) ;
&#xA0;&#xA0;time_rep_type <fo:basic-link internal-destination="id308532-bb">add_days</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, <fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp;) ;
&#xA0;&#xA0;time_rep_type 
&#xA0;&#xA0;<fo:basic-link internal-destination="id394837-bb">subtract_days</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, <fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp;) ;
&#xA0;&#xA0;time_rep_type 
&#xA0;&#xA0;<fo:basic-link internal-destination="id414253-bb">subtract_time_duration</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp;) ;
&#xA0;&#xA0;time_rep_type <fo:basic-link internal-destination="id322360-bb">add_time_duration</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, time_duration_type) ;
&#xA0;&#xA0;time_duration_type 
&#xA0;&#xA0;<fo:basic-link internal-destination="id383508-bb">subtract_times</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;, <fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;) ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id352903-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0; <fo:basic-link internal-destination="id321227-bb">BOOST_STATIC_CONSTANT</fo:basic-link>(int_type, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;ticks_per_day = INT64_C(86400)*config::tick_per_second) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id486465"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id486473"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">split_timedate_system public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id309506-bb"/><fo:inline font-family="monospace">split_timedate_system</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id486488" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id486494" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id486496" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_rep_type 
<fo:wrapper id="id302000-bb"/>get_time_rep(<fo:inline font-weight="bold">const</fo:inline> date_type &amp; day, <fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; tod, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;date_time::dst_flags dst = not_dst) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id486529" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id486531" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_type <fo:wrapper id="id366478-bb"/>get_date(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; val) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id486556" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id486558" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type <fo:wrapper id="id436153-bb"/>get_time_of_day(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; val) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id486583" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id486586" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::string <fo:wrapper id="id427464-bb"/>zone_name(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; ) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id486610" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id486612" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id361895-bb"/>is_equal(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; lhs, <fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id486647" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id486650" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id363003-bb"/>is_less(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; lhs, <fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id486685" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id486687" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_rep_type 
<fo:wrapper id="id308532-bb"/>add_days(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; base, <fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp; dd) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id486719" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id486721" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_rep_type 
<fo:wrapper id="id394837-bb"/>subtract_days(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; base, <fo:inline font-weight="bold">const</fo:inline> date_duration_type &amp; dd) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id486752" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id486755" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_rep_type 
<fo:wrapper id="id414253-bb"/>subtract_time_duration(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; base, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> time_duration_type &amp; td) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id486788" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id486790" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_rep_type 
<fo:wrapper id="id322360-bb"/>add_time_duration(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; base, time_duration_type td) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id486816" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id486819" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">time_duration_type 
<fo:wrapper id="id383508-bb"/>subtract_times(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; lhs, <fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; rhs) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id486850"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">split_timedate_system private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id352903-bb"/><fo:inline font-family="monospace">split_timedate_system</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id486865" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id486871" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id486873" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"> <fo:wrapper id="id321227-bb"/>BOOST_STATIC_CONSTANT(int_type , 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;ticks_per_day  = INT64_C(86400)*config::tick_per_second) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id418251"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/wrapping_int.hpp">boost/date_time/wrapping_int.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id486907" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> int_type_, int_type_ wrap_val&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="wrapping_int">wrapping_int</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> int_type_, int_type_ wrap_min, int_type_ wrap_max&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="wrapping_int2">wrapping_int2</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="wrapping_int"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template wrapping_int</fo:block></fo:block><fo:block space-after="1em">Class template wrapping_int <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A wrapping integer used to support time durations. </fo:block></fo:block><fo:block>boost::date_time::wrapping_int</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id487006"><fo:block/><fo:block id="id487008" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> int_type_, int_type_ wrap_val&gt; 
<fo:inline font-weight="bold">class</fo:inline> wrapping_int {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> int_type_ int_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="wrapping_intconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id298216-bb">wrapping_int</fo:basic-link>(int_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id318942-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id307476-bb">as_int</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="id432438-bb"><fo:inline font-weight="bold">operator</fo:inline> int_type</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id335280-bb">add</fo:basic-link>(int_type) ;
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id408502-bb">subtract</fo:basic-link>(int_type) ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id433467-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id433473-bb">wrap_value</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id487184"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In composite date and time types this type is used to wrap at the day boundary. </fo:block><fo:block id="id487192"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">wrapping_int construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="wrapping_intconstruct-copy-destruct"/><fo:inline font-family="monospace">wrapping_int</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id487208" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id487214" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id487216" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id298216-bb"/>wrapping_int(int_type v);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Add, return true if wrapped. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id487234"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">wrapping_int public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id318942-bb"/><fo:inline font-family="monospace">wrapping_int</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id487248" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id487254" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id487257" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id307476-bb"/>as_int() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Explicit converion method. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id487284" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id487286" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id432438-bb"/><fo:inline font-weight="bold">operator</fo:inline> int_type() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id487311" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id487313" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id335280-bb"/>add(int_type v) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id487331" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id487334" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id408502-bb"/>subtract(int_type v) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id487351"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">wrapping_int public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id433467-bb"/><fo:inline font-family="monospace">wrapping_int</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id487366" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id487372" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id487374" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id433473-bb"/>wrap_value() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="wrapping_int2"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class template wrapping_int2</fo:block></fo:block><fo:block space-after="1em">Class template wrapping_int2 <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A wrapping integer used to wrap around at the top. </fo:block></fo:block><fo:block>boost::date_time::wrapping_int2</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id487414"><fo:block/><fo:block id="id487415" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> int_type_, int_type_ wrap_min, int_type_ wrap_max&gt; 
<fo:inline font-weight="bold">class</fo:inline> wrapping_int2 {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> int_type_ int_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="wrapping_int2construct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id343611-bb">wrapping_int2</fo:basic-link>(int_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id374620-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id374626-bb">as_int</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="id308624-bb"><fo:inline font-weight="bold">operator</fo:inline> int_type</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id378045-bb">add</fo:basic-link>(int_type) ;
&#xA0;&#xA0;int_type <fo:basic-link internal-destination="id309833-bb">subtract</fo:basic-link>(int_type) ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id392564-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">long</fo:inline> <fo:basic-link internal-destination="id429151-bb">wrap_value</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">long</fo:inline> <fo:basic-link internal-destination="id318951-bb">min_value</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id487624"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Bad name, quick impl to fix a bug -- fix later!! This allows the wrap to restart at a value other than 0. Currently this only works if wrap_min == 1 </fo:block><fo:block id="id487633"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">wrapping_int2 construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="wrapping_int2construct-copy-destruct"/><fo:inline font-family="monospace">wrapping_int2</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id487650" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id487656" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id487658" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id343611-bb"/>wrapping_int2(int_type v);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If initializing value is out of range of [wrap_min, wrap_max], value will be initialized to closest of min or max </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id487677"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">wrapping_int2 public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id374620-bb"/><fo:inline font-family="monospace">wrapping_int2</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id487691" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id487698" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id487700" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id374626-bb"/>as_int() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Explicit converion method. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id487727" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id487729" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id308624-bb"/><fo:inline font-weight="bold">operator</fo:inline> int_type() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id487754" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id487756" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id378045-bb"/>add(int_type v) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Add, return number of wraps performed. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id487777" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id487779" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int_type <fo:wrapper id="id309833-bb"/>subtract(int_type v) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Subtract will return '-d' if wrapping took place ('d' is the number of wraps). </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id487801"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">wrapping_int2 public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id392564-bb"/><fo:inline font-family="monospace">wrapping_int2</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id487815" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id487822" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id487824" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">long</fo:inline> <fo:wrapper id="id429151-bb"/>wrap_value() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id487851" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id487854" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">long</fo:inline> <fo:wrapper id="id318951-bb"/>min_value() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id395548"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/year_month_day.hpp">boost/date_time/year_month_day.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id487898" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> date_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> YearType, <fo:inline font-weight="bold">typename</fo:inline> MonthType, <fo:inline font-weight="bold">typename</fo:inline> DayType&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="year_month_day_base">year_month_day_base</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="year_month_day_base"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct template year_month_day_base</fo:block></fo:block><fo:block space-after="1em">Struct template year_month_day_base <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Allow rapid creation of ymd triples of different types. </fo:block></fo:block><fo:block>boost::date_time::year_month_day_base</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id487982"><fo:block/><fo:block id="id487983" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> YearType, <fo:inline font-weight="bold">typename</fo:inline> MonthType, <fo:inline font-weight="bold">typename</fo:inline> DayType&gt; 
<fo:inline font-weight="bold">struct</fo:inline> year_month_day_base {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> YearType&#xA0; year_type;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> MonthType month_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> DayType&#xA0;&#xA0; day_type;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="year_month_day_baseconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id383915-bb">year_month_day_base</fo:basic-link>(YearType, MonthType, DayType);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id288033-bb">public member functions</fo:basic-link></fo:inline>

&#xA0;&#xA0;YearType year;
&#xA0;&#xA0;MonthType month;
&#xA0;&#xA0;DayType day;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id488087"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id488091"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">year_month_day_base construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="year_month_day_baseconstruct-copy-destruct"/><fo:inline font-family="monospace">year_month_day_base</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id488108" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id488114" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id488116" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id383915-bb"/>year_month_day_base(YearType year, MonthType month, DayType day);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A basic constructor. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id488134"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">year_month_day_base public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id288033-bb"/><fo:inline font-family="monospace">year_month_day_base</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id488149" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="gregorian_reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Gregorian Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id329645"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/formatters.hpp">boost/date_time/gregorian/formatters.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id488184" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; charT &gt; <fo:wrapper id="id426633"/>to_simple_string_type(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// To YYYY-mmm-DD string where mmm 3 char month name. Example: 2002-Jan-01. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::string <fo:wrapper id="id385495"/>to_simple_string(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; charT &gt; <fo:wrapper id="id368232"/>to_simple_string_type(<fo:inline font-weight="bold">const</fo:inline> date_period &amp; d);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Convert date period to simple string. Example: [2002-Jan-01/2002-Jan-02]. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::string <fo:wrapper id="id323685"/>to_simple_string(<fo:inline font-weight="bold">const</fo:inline> date_period &amp; d);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; charT &gt; <fo:wrapper id="id311252"/>to_iso_string_type(<fo:inline font-weight="bold">const</fo:inline> date_period &amp; d);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Date period to iso standard format CCYYMMDD/CCYYMMDD. Example: 20021225/20021231. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::string <fo:wrapper id="id355817"/>to_iso_string(<fo:inline font-weight="bold">const</fo:inline> date_period &amp; d);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; charT &gt; <fo:wrapper id="id326452"/>to_iso_extended_string_type(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Convert to iso extended format string CCYY-MM-DD. Example 2002-12-31. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::string <fo:wrapper id="id410513"/>to_iso_extended_string(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; charT &gt; <fo:wrapper id="id412291"/>to_iso_string_type(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Convert to iso standard string YYYYMMDD. Example: 20021231. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::string <fo:wrapper id="id384580"/>to_iso_string(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; charT &gt; <fo:wrapper id="to_sql_string_type"/>to_sql_string_type(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);
&#xA0;&#xA0;&#xA0;&#xA0;std::string <fo:wrapper id="to_sql_string"/>to_sql_string(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Convert date period to simple string. Example: [2002-Jan-01/2002-Jan-02]. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::wstring <fo:wrapper id="id382900"/>to_simple_wstring(<fo:inline font-weight="bold">const</fo:inline> date_period &amp; d);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// To YYYY-mmm-DD string where mmm 3 char month name. Example: 2002-Jan-01. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::wstring <fo:wrapper id="id402727"/>to_simple_wstring(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Date period to iso standard format CCYYMMDD/CCYYMMDD. Example: 20021225/20021231. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::wstring <fo:wrapper id="id423403"/>to_iso_wstring(<fo:inline font-weight="bold">const</fo:inline> date_period &amp; d);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Convert to iso extended format string CCYY-MM-DD. Example 2002-12-31. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::wstring <fo:wrapper id="id377059"/>to_iso_extended_wstring(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Convert to iso standard string YYYYMMDD. Example: 20021231. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::wstring <fo:wrapper id="id418427"/>to_iso_wstring(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);
&#xA0;&#xA0;&#xA0;&#xA0;std::wstring <fo:wrapper id="to_sql_wstring"/>to_sql_wstring(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);
&#xA0;&#xA0;}
}</fo:block></fo:block><fo:block id="id395520"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/formatters_limited.hpp">boost/date_time/gregorian/formatters_limited.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id488784" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;}
}</fo:block></fo:block><fo:block id="id331975"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/greg_calendar.hpp">boost/date_time/gregorian/greg_calendar.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id488819" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="gregorian_calendar">gregorian_calendar</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::int_adapter&lt; <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">long</fo:inline> &gt; fancy_date_rep;  <fo:inline font-style="italic">// An internal date representation that includes infinities, not a date. </fo:inline>
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="gregorian_calendar"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class gregorian_calendar</fo:block></fo:block><fo:block space-after="1em">Class gregorian_calendar <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Gregorian calendar for this implementation, hard work in the base. </fo:block></fo:block><fo:block>boost::gregorian::gregorian_calendar</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id488902"><fo:block/><fo:block id="id488903" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> gregorian_calendar {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="greg_weekday">greg_weekday</fo:basic-link>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; day_of_week_type;  <fo:inline font-style="italic">// Type to hold a weekday (eg: Sunday, Monday,...). </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> greg_day_of_year_rep day_of_year_type;  <fo:inline font-style="italic">// Counter type from 1 to 366 for gregorian dates. </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> fancy_date_rep&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_rep_type;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// Internal date representation that handles infinity, not a date. </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> fancy_date_rep&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_traits_type;  <fo:inline font-style="italic">// Date rep implements the traits stuff as well. </fo:inline>
};</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id337478"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/greg_date.hpp">boost/date_time/gregorian/greg_date.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id489003" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="boost.gregorian.date"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class date</fo:block></fo:block><fo:block space-after="1em">Class date <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A date type based on gregorian_calendar. </fo:block></fo:block><fo:block>boost::gregorian::date</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id489056"><fo:block/><fo:block id="id489057" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> date {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> gregorian_calendar::year_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; year_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> gregorian_calendar::month_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> gregorian_calendar::day_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; day_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> gregorian_calendar::day_of_year_type day_of_year_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> gregorian_calendar::ymd_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; ymd_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> gregorian_calendar::date_rep_type&#xA0;&#xA0;&#xA0; date_rep_type;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> gregorian_calendar::date_int_type&#xA0;&#xA0;&#xA0; date_int_type;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_duration&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; duration_type;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="boost.gregorian.dateconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id422918-bb">date</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id319339-bb">date</fo:basic-link>(year_type, month_type, day_type);
&#xA0;&#xA0;<fo:basic-link internal-destination="id386267-bb">date</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id414393-bb">date</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> date_int_type &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id398481-bb">date</fo:basic-link>(date_rep_type);
&#xA0;&#xA0;<fo:basic-link internal-destination="id432644-bb">date</fo:basic-link>(special_values);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id383784-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;date_int_type <fo:basic-link internal-destination="id383790-bb">julian_day</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;day_of_year_type <fo:basic-link internal-destination="id300029-bb">day_of_year</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">long</fo:inline> <fo:basic-link internal-destination="id319289-bb">modjulian_day</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id431571-bb">week_number</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;date_int_type <fo:basic-link internal-destination="id380917-bb">day_number</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id489356"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This class is the primary interface for programming with greogorian dates. The is a lightweight type that can be freely passed by value. All comparison operators are supported. </fo:block><fo:block id="id489366"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="boost.gregorian.dateconstruct-copy-destruct"/><fo:inline font-family="monospace">date</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id489383" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id489389" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id489391" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id422918-bb"/>date();</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Default constructor constructs with not_a_date_time. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id489408" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id489411" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id319339-bb"/>date(year_type y, month_type m, day_type d);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Main constructor with year, month, day. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id489428" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id489430" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id386267-bb"/>date(<fo:inline font-weight="bold">const</fo:inline> ymd_type &amp; ymd);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Constructor from a ymd_type structure. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id489454" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id489456" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id414393-bb"/>date(<fo:inline font-weight="bold">const</fo:inline> date_int_type &amp; rhs);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Needed copy constructor. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id489480" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id489482" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id398481-bb"/>date(date_rep_type rhs);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Needed copy constructor. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id489499" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id489501" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id432644-bb"/>date(special_values sv);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Constructor for infinities, not a date, max and min date. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id489519"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">date public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id383784-bb"/><fo:inline font-family="monospace">date</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id489534" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id489539" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id489542" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_int_type <fo:wrapper id="id383790-bb"/>julian_day() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the Julian Day number for the date. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id489569" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id489571" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">day_of_year_type <fo:wrapper id="id300029-bb"/>day_of_year() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the day of year 1..365 or 1..366 (for leap year). </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id489599" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id489601" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">long</fo:inline> <fo:wrapper id="id319289-bb"/>modjulian_day() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the Modified Julian Day number for the date. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id489632" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id489635" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id431571-bb"/>week_number() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the iso 8601 week number 1..53. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id489664" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id489667" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">date_int_type <fo:wrapper id="id380917-bb"/>day_number() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the day number from the calendar. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id317225"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/greg_day.hpp">boost/date_time/gregorian/greg_day.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id489710" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="bad_day_of_month">bad_day_of_month</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="greg_day">greg_day</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> CV::simple_exception_policy&lt; <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline>, 1, 31, <fo:basic-link internal-destination="bad_day_of_month">bad_day_of_month</fo:basic-link> &gt; greg_day_policies;  <fo:inline font-style="italic">// Policy class that declares error handling and day of month ranges. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> CV::constrained_value&lt; greg_day_policies &gt; greg_day_rep;  <fo:inline font-style="italic">// Generated represetation for gregorian day of month. </fo:inline>
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="bad_day_of_month"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct bad_day_of_month</fo:block></fo:block><fo:block space-after="1em">Struct bad_day_of_month <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Exception type for gregorian day of month (1..31). </fo:block></fo:block><fo:block>boost::gregorian::bad_day_of_month</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id489832"><fo:block/><fo:block id="id489833" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> bad_day_of_month {
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="bad_day_of_monthconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id324144-bb">bad_day_of_month</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id324148-bb">bad_day_of_month</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id324139-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id489899"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id489902"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">bad_day_of_month construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="bad_day_of_monthconstruct-copy-destruct"/><fo:inline font-family="monospace">bad_day_of_month</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id489919" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id489925" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id489927" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id324144-bb"/>bad_day_of_month();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id489941" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id489944" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id324148-bb"/>bad_day_of_month(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; s);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Allow other classes to throw with unique string for bad day like Feb 29. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id489968"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">bad_day_of_month public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id324139-bb"/><fo:inline font-family="monospace">bad_day_of_month</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id489983" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="greg_day"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class greg_day</fo:block></fo:block><fo:block space-after="1em">Class greg_day <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Represent a day of the month (range 1 - 31). </fo:block></fo:block><fo:block>boost::gregorian::greg_day</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id490010"><fo:block/><fo:block id="id490011" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> greg_day {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="greg_dayconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id371063-bb">greg_day</fo:basic-link>(<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline>);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id382216-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:basic-link internal-destination="id382222-bb">as_number</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="id437342-bb"><fo:inline font-weight="bold">operator</fo:inline> <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline></fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id490140"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This small class allows for simple conversion an integer value into a day of the month for a standard gregorian calendar. The type is automatically range checked so values outside of the range 1-31 will cause a bad_day_of_month exception </fo:block><fo:block id="id490151"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">greg_day construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="greg_dayconstruct-copy-destruct"/><fo:inline font-family="monospace">greg_day</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id490166" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id490172" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id490174" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id371063-bb"/>greg_day(<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> day_of_month);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id490201"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">greg_day public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id382216-bb"/><fo:inline font-family="monospace">greg_day</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id490216" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id490222" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id490225" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:wrapper id="id382222-bb"/>as_number() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id490258" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id490261" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id437342-bb"/><fo:inline font-weight="bold">operator</fo:inline> <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline>() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id347220"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/greg_day_of_year.hpp">boost/date_time/gregorian/greg_day_of_year.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id490315" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="bad_day_of_year">bad_day_of_year</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> CV::simple_exception_policy&lt; <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline>, 1, 366, <fo:basic-link internal-destination="bad_day_of_year">bad_day_of_year</fo:basic-link> &gt; greg_day_of_year_policies;  <fo:inline font-style="italic">// A day of the year range (1..366). </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> CV::constrained_value&lt; greg_day_of_year_policies &gt; greg_day_of_year_rep;  <fo:inline font-style="italic">// Define a range representation type for the day of the year 1..366. </fo:inline>
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="bad_day_of_year"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct bad_day_of_year</fo:block></fo:block><fo:block space-after="1em">Struct bad_day_of_year <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Exception type for day of year (1..366). </fo:block></fo:block><fo:block>boost::gregorian::bad_day_of_year</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id490418"><fo:block/><fo:block id="id490419" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> bad_day_of_year {
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="bad_day_of_yearconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id425183-bb">bad_day_of_year</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id425177-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id490468"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id490472"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">bad_day_of_year construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="bad_day_of_yearconstruct-copy-destruct"/><fo:inline font-family="monospace">bad_day_of_year</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id490488" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id490494" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id490496" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id425183-bb"/>bad_day_of_year();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id353187"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">bad_day_of_year public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id425177-bb"/><fo:inline font-family="monospace">bad_day_of_year</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id353198" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id313866"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/greg_duration.hpp">boost/date_time/gregorian/greg_duration.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id353217" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::date_time::duration_traits_adapted date_duration_rep;  <fo:inline font-style="italic">// An internal date representation that includes infinities, not a date. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::date_duration&lt; date_duration_rep &gt; date_duration;  <fo:inline font-style="italic">// Durations in days for gregorian system. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_duration days;  <fo:inline font-style="italic">// Shorthand for date_duration. </fo:inline>
&#xA0;&#xA0;}
}</fo:block></fo:block><fo:block id="id391110"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/greg_duration_types.hpp">boost/date_time/gregorian/greg_duration_types.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id353280" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="greg_durations_config">greg_durations_config</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::months_duration&lt; <fo:basic-link internal-destination="greg_durations_config">greg_durations_config</fo:basic-link> &gt; months;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::years_duration&lt; <fo:basic-link internal-destination="greg_durations_config">greg_durations_config</fo:basic-link> &gt; years;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::weeks_duration&lt; date_time::duration_traits_adapted &gt; weeks;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="greg_durations_config"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct greg_durations_config</fo:block></fo:block><fo:block space-after="1em">Struct greg_durations_config <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">config struct for additional duration types (ie months_duration&lt;&gt; &amp; years_duration&lt;&gt;) </fo:block></fo:block><fo:block>boost::gregorian::greg_durations_config</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id491403"><fo:block/><fo:block id="id491404" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> greg_durations_config {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::int_adapter&lt; <fo:inline font-weight="bold">int</fo:inline> &gt;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; int_rep;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::month_functor&lt; date_type &gt; month_adjustor_type;
};</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id388664"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/greg_facet.hpp">boost/date_time/gregorian/greg_facet.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id491469" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="greg_facet_config">greg_facet_config</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::date_time::date_names_put&lt; <fo:basic-link internal-destination="greg_facet_config">greg_facet_config</fo:basic-link> &gt; greg_base_facet;  <fo:inline font-style="italic">// Create the base facet type for gregorian::date. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id307366"><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;</fo:basic-link>(std::basic_ostream&lt; charT, traits &gt; &amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id382673"><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;</fo:basic-link>(std::basic_ostream&lt; charT, traits &gt; &amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="greg_month">greg_month</fo:basic-link> &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id285910"><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;</fo:basic-link>(std::basic_ostream&lt; charT, traits &gt; &amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="greg_weekday">greg_weekday</fo:basic-link> &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id287707"><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;</fo:basic-link>(std::basic_ostream&lt; charT, traits &gt; &amp;, <fo:inline font-weight="bold">const</fo:inline> date_period &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id244161"/><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> date_duration &amp; dd);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// operator&lt;&lt; for gregorian::partial_date. Output: "Jan 1" </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id415652"/><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> partial_date &amp; pd);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// operator&lt;&lt; for gregorian::nth_kday_of_month. Output: "first Mon of Jun" </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id369898"/><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> nth_kday_of_month &amp; nkd);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// operator&lt;&lt; for gregorian::first_kday_of_month. Output: "first Mon of Jun" </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id398025"/><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> first_kday_of_month &amp; fkd);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// operator&lt;&lt; for gregorian::last_kday_of_month. Output: "last Mon of Jun" </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id318258"/><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> last_kday_of_month &amp; lkd);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// operator&lt;&lt; for gregorian::first_kday_after. Output: "first Mon after" </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id320731"/><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> first_kday_after &amp; fka);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// operator&lt;&lt; for gregorian::first_kday_before. Output: "first Mon before" </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id368716"/><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> first_kday_before &amp; fkb);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// operator&gt;&gt; for gregorian::date </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_istream&lt; charT &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id373081"/><fo:inline font-weight="bold">operator</fo:inline>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// operator&gt;&gt; for gregorian::date_duration </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_istream&lt; charT &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id365562"/><fo:inline font-weight="bold">operator</fo:inline>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, date_duration &amp; dd);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// operator&gt;&gt; for gregorian::date_period </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_istream&lt; charT &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id303191"/><fo:inline font-weight="bold">operator</fo:inline>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, date_period &amp; dp);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// generates a locale with the set of gregorian name-strings of type char* </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;BOOST_DATE_TIME_DECL std::locale 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id381517"/>generate_locale(std::locale &amp; loc, <fo:inline font-weight="bold">char</fo:inline> type);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Returns a pointer to a facet with a default set of names (English). </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;BOOST_DATE_TIME_DECL boost::date_time::all_date_names_put&lt; <fo:basic-link internal-destination="greg_facet_config">greg_facet_config</fo:basic-link>, <fo:inline font-weight="bold">char</fo:inline> &gt; * 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id327304"/>create_facet_def(<fo:inline font-weight="bold">char</fo:inline> type);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// generates a locale with the set of gregorian name-strings of type wchar_t* </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;BOOST_DATE_TIME_DECL std::locale 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id302635"/>generate_locale(std::locale &amp; loc, <fo:inline font-weight="bold">wchar_t</fo:inline> type);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Returns a pointer to a facet with a default set of names (English). </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;BOOST_DATE_TIME_DECL boost::date_time::all_date_names_put&lt; <fo:basic-link internal-destination="greg_facet_config">greg_facet_config</fo:basic-link>, <fo:inline font-weight="bold">wchar_t</fo:inline> &gt; * 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id338902"/>create_facet_def(<fo:inline font-weight="bold">wchar_t</fo:inline> type);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// operator&gt;&gt; for gregorian::greg_month - throws exception if invalid month given </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_istream&lt; charT &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id332432"/><fo:inline font-weight="bold">operator</fo:inline>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, <fo:basic-link internal-destination="greg_month">greg_month</fo:basic-link> &amp; m);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// operator&gt;&gt; for gregorian::greg_weekday - throws exception if invalid weekday given </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_istream&lt; charT &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id407303"/><fo:inline font-weight="bold">operator</fo:inline>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, <fo:basic-link internal-destination="greg_weekday">greg_weekday</fo:basic-link> &amp; wd);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="greg_facet_config"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct greg_facet_config</fo:block></fo:block><fo:block space-after="1em">Struct greg_facet_config <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Configuration of the output facet template. </fo:block></fo:block><fo:block>boost::gregorian::greg_facet_config</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id492334"><fo:block/><fo:block id="id492335" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> greg_facet_config {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="greg_month">boost::gregorian::greg_month</fo:basic-link>&#xA0;&#xA0;&#xA0;&#xA0; month_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::date_time::special_values special_value_enum;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::gregorian::months_of_year month_enum;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::date_time::weekdays&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; weekday_enum;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
};</fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id307366"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function template operator&lt;&lt;</fo:block></fo:block><fo:block space-after="1em">Function template operator&lt;&lt; <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ostream operator for gregorian::date </fo:block></fo:block><fo:block>boost::gregorian::operator&lt;&lt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id492413"><fo:block/><fo:block id="id492414" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;<fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &amp; d);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id492464"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Uses the date facet to determine various output parameters including:<fo:list-block id="id492472" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id492473" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>string values for the month (eg: Jan, Feb, Mar) (default: English)</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id492478" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>string values for special values (eg: not-a-date-time) (default: English)</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id492483" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>selection of long, short strings, or numerical month representation (default: short string)</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id492489" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>month day year order (default yyyy-mmm-dd) </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id382673"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function template operator&lt;&lt;</fo:block></fo:block><fo:block space-after="1em">Function template operator&lt;&lt; <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">operator&lt;&lt; for gregorian::greg_month typically streaming: Jan, Feb, Mar... </fo:block></fo:block><fo:block>boost::gregorian::operator&lt;&lt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id492516"><fo:block/><fo:block id="id492518" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;<fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="greg_month">greg_month</fo:basic-link> &amp; m);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id492569"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Uses the date facet to determine output string as well as selection of long or short strings. Default if no facet is installed is to output a 2 wide numeric value for the month eg: 01 == Jan, 02 == Feb, ... 12 == Dec. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id285910"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function template operator&lt;&lt;</fo:block></fo:block><fo:block space-after="1em">Function template operator&lt;&lt; <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">operator&lt;&lt; for gregorian::greg_weekday typically streaming: Sun, Mon, Tue, ... </fo:block></fo:block><fo:block>boost::gregorian::operator&lt;&lt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id492603"><fo:block/><fo:block id="id492604" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;<fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="greg_weekday">greg_weekday</fo:basic-link> &amp; wd);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id492656"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Uses the date facet to determine output string as well as selection of long or short string. Default if no facet is installed is to output a 3 char english string for the day of the week. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id287707"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function template operator&lt;&lt;</fo:block></fo:block><fo:block space-after="1em">Function template operator&lt;&lt; <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">operator&lt;&lt; for gregorian::date_period typical output: [2002-Jan-01/2002-Jan-31] </fo:block></fo:block><fo:block>boost::gregorian::operator&lt;&lt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id492689"><fo:block/><fo:block id="id492691" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;<fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, <fo:inline font-weight="bold">const</fo:inline> date_period &amp; dp);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id492735"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Uses the date facet to determine output string as well as selection of long or short string fr dates. Default if no facet is installed is to output a 3 char english string for the day of the week. </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id347825"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/greg_month.hpp">boost/date_time/gregorian/greg_month.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id492760" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="bad_month">bad_month</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="greg_month">greg_month</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::months_of_year months_of_year;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> CV::simple_exception_policy&lt; <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline>, 1, 12, <fo:basic-link internal-destination="bad_month">bad_month</fo:basic-link> &gt; greg_month_policies;  <fo:inline font-style="italic">// Build a policy class for the greg_month_rep. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> CV::constrained_value&lt; greg_month_policies &gt; greg_month_rep;  <fo:inline font-style="italic">// A constrained range that implements the gregorian_month rules. </fo:inline>
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="bad_month"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct bad_month</fo:block></fo:block><fo:block space-after="1em">Struct bad_month <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Exception thrown if a greg_month is constructed with a value out of range. </fo:block></fo:block><fo:block>boost::gregorian::bad_month</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id492884"><fo:block/><fo:block id="id492885" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> bad_month {
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="bad_monthconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id363946-bb">bad_month</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id363940-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id492929"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id492933"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">bad_month construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="bad_monthconstruct-copy-destruct"/><fo:inline font-family="monospace">bad_month</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id492948" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id492954" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id492956" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id363946-bb"/>bad_month();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id492969"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">bad_month public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id363940-bb"/><fo:inline font-family="monospace">bad_month</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id492983" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="greg_month"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class greg_month</fo:block></fo:block><fo:block space-after="1em">Class greg_month <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Wrapper class to represent months in gregorian based calendar. </fo:block></fo:block><fo:block>boost::gregorian::greg_month</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id493009"><fo:block/><fo:block id="id493010" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> greg_month {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::months_of_year&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; month_enum;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::map&lt; std::string, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> &gt; month_map_type;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::shared_ptr&lt; month_map_type &gt;&#xA0;&#xA0;&#xA0;&#xA0; month_map_ptr_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="greg_monthconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id365011-bb">greg_month</fo:basic-link>(month_enum);
&#xA0;&#xA0;<fo:basic-link internal-destination="id307329-bb">greg_month</fo:basic-link>(<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline>);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id309901-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id309906-bb"><fo:inline font-weight="bold">operator</fo:inline> <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline></fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:basic-link internal-destination="id419702-bb">as_number</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;month_enum <fo:basic-link internal-destination="id428268-bb">as_enum</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:basic-link internal-destination="id423136-bb">as_short_string</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:basic-link internal-destination="id422578-bb">as_long_string</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:basic-link internal-destination="id365194-bb">as_short_wstring</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:basic-link internal-destination="id422282-bb">as_long_wstring</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:basic-link internal-destination="id348754-bb">as_short_string</fo:basic-link>(<fo:inline font-weight="bold">char</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:basic-link internal-destination="id347279-bb">as_long_string</fo:basic-link>(<fo:inline font-weight="bold">char</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:basic-link internal-destination="id428550-bb">as_short_string</fo:basic-link>(<fo:inline font-weight="bold">wchar_t</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:basic-link internal-destination="id370181-bb">as_long_string</fo:basic-link>(<fo:inline font-weight="bold">wchar_t</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id229966-bb">public static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;month_map_ptr_type <fo:basic-link internal-destination="id229972-bb">get_month_map_ptr</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id493493"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id493496"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">greg_month construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="greg_monthconstruct-copy-destruct"/><fo:inline font-family="monospace">greg_month</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id493512" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id493518" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id493520" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id365011-bb"/>greg_month(month_enum theMonth);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct a month from the months_of_year enumeration. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id493536" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id493538" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id307329-bb"/>greg_month(<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> theMonth);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct from a short value. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id493567"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">greg_month public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id309901-bb"/><fo:inline font-family="monospace">greg_month</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id493581" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id493587" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id493589" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id309906-bb"/><fo:inline font-weight="bold">operator</fo:inline> <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline>() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Convert the value back to a short. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id493628" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id493631" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:wrapper id="id419702-bb"/>as_number() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns month as number from 1 to 12. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id493667" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id493669" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_enum <fo:wrapper id="id428268-bb"/>as_enum() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id493692" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id493694" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:wrapper id="id423136-bb"/>as_short_string() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id493728" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id493730" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:wrapper id="id422578-bb"/>as_long_string() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id493763" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id493766" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:wrapper id="id365194-bb"/>as_short_wstring() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id493799" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id493801" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:wrapper id="id422282-bb"/>as_long_wstring() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id493834" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id493837" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:wrapper id="id348754-bb"/>as_short_string(<fo:inline font-weight="bold">char</fo:inline> ) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id493876" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id493879" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:wrapper id="id347279-bb"/>as_long_string(<fo:inline font-weight="bold">char</fo:inline> ) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id493918" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id493921" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:wrapper id="id428550-bb"/>as_short_string(<fo:inline font-weight="bold">wchar_t</fo:inline> ) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id493960" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id493963" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:wrapper id="id370181-bb"/>as_long_string(<fo:inline font-weight="bold">wchar_t</fo:inline> ) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id494002"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">greg_month public static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id229966-bb"/><fo:inline font-family="monospace">greg_month</fo:inline> public static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id494016" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id494022" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id494025" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">month_map_ptr_type <fo:wrapper id="id229972-bb"/>get_month_map_ptr() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Shared pointer to a map of Month strings (Names &amp; Abbrev) &amp; numbers. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id308611"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/greg_weekday.hpp">boost/date_time/gregorian/greg_weekday.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id494061" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="bad_weekday">bad_weekday</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="greg_weekday">greg_weekday</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> CV::simple_exception_policy&lt; <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline>, 0, 6, <fo:basic-link internal-destination="bad_weekday">bad_weekday</fo:basic-link> &gt; greg_weekday_policies;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> CV::constrained_value&lt; greg_weekday_policies &gt; greg_weekday_rep;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="bad_weekday"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct bad_weekday</fo:block></fo:block><fo:block space-after="1em">Struct bad_weekday <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Exception that flags that a weekday number is incorrect. </fo:block></fo:block><fo:block>boost::gregorian::bad_weekday</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id494165"><fo:block/><fo:block id="id494166" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> bad_weekday {
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="bad_weekdayconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id389091-bb">bad_weekday</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id389085-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id494210"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id494214"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">bad_weekday construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="bad_weekdayconstruct-copy-destruct"/><fo:inline font-family="monospace">bad_weekday</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id494229" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id494235" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id494238" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id389091-bb"/>bad_weekday();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id494250"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">bad_weekday public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id389085-bb"/><fo:inline font-family="monospace">bad_weekday</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id494264" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="greg_weekday"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class greg_weekday</fo:block></fo:block><fo:block space-after="1em">Class greg_weekday <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Represent a day within a week (range 0==Sun to 6==Sat). </fo:block></fo:block><fo:block>boost::gregorian::greg_weekday</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id494290"><fo:block/><fo:block id="id494291" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> greg_weekday {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::date_time::weekdays weekday_enum;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="greg_weekdayconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id323704-bb">greg_weekday</fo:basic-link>(<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline>);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id368644-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:basic-link internal-destination="id368651-bb">as_number</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:basic-link internal-destination="id360472-bb">as_short_string</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:basic-link internal-destination="id366587-bb">as_long_string</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:basic-link internal-destination="id320224-bb">as_short_wstring</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:basic-link internal-destination="id287919-bb">as_long_wstring</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;weekday_enum <fo:basic-link internal-destination="id351414-bb">as_enum</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id494534"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id494538"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">greg_weekday construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="greg_weekdayconstruct-copy-destruct"/><fo:inline font-family="monospace">greg_weekday</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id494553" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id494559" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id494562" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id323704-bb"/>greg_weekday(<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> day_of_week_num);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id494587"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">greg_weekday public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id368644-bb"/><fo:inline font-family="monospace">greg_weekday</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id494601" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id494607" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id494609" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> <fo:wrapper id="id368651-bb"/>as_number() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id494642" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id494644" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:wrapper id="id360472-bb"/>as_short_string() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id494678" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id494680" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:wrapper id="id366587-bb"/>as_long_string() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id494713" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id494716" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:wrapper id="id320224-bb"/>as_short_wstring() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id494749" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id494751" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">wchar_t</fo:inline> * <fo:wrapper id="id287919-bb"/>as_long_wstring() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id494785" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id494787" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">weekday_enum <fo:wrapper id="id351414-bb"/>as_enum() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id351055"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/greg_year.hpp">boost/date_time/gregorian/greg_year.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id494824" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="bad_year">bad_year</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="greg_year">greg_year</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> CV::simple_exception_policy&lt; <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline>, 1400, 10000, <fo:basic-link internal-destination="bad_year">bad_year</fo:basic-link> &gt; greg_year_policies;  <fo:inline font-style="italic">// Policy class that declares error handling gregorian year type. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> CV::constrained_value&lt; greg_year_policies &gt; greg_year_rep;  <fo:inline font-style="italic">// Generated representation for gregorian year. </fo:inline>
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="bad_year"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct bad_year</fo:block></fo:block><fo:block space-after="1em">Struct bad_year <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Exception type for gregorian year. </fo:block></fo:block><fo:block>boost::gregorian::bad_year</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id494940"><fo:block/><fo:block id="id494941" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> bad_year {
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="bad_yearconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id300168-bb">bad_year</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id398137-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id494985"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id494988"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">bad_year construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="bad_yearconstruct-copy-destruct"/><fo:inline font-family="monospace">bad_year</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id495003" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id495009" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id495011" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id300168-bb"/>bad_year();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id495024"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">bad_year public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id398137-bb"/><fo:inline font-family="monospace">bad_year</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id495038" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="greg_year"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class greg_year</fo:block></fo:block><fo:block space-after="1em">Class greg_year <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Represent a day of the month (range 1900 - 10000). </fo:block></fo:block><fo:block>boost::gregorian::greg_year</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id495064"><fo:block/><fo:block id="id495065" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> greg_year {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="greg_yearconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id354736-bb">greg_year</fo:basic-link>(<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline>);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id325863-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id427974-bb"><fo:inline font-weight="bold">operator</fo:inline> <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline></fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id495160"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This small class allows for simple conversion an integer value into a year for the gregorian calendar. This currently only allows a range of 1900 to 10000. Both ends of the range are a bit arbitrary at the moment, but they are the limits of current testing of the library. As such they may be increased in the future. </fo:block><fo:block id="id495172"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">greg_year construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="greg_yearconstruct-copy-destruct"/><fo:inline font-family="monospace">greg_year</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id495187" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id495193" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id495195" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id354736-bb"/>greg_year(<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline> year);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id495221"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">greg_year public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id325863-bb"/><fo:inline font-family="monospace">greg_year</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id495236" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id495242" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id495245" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id427974-bb"/><fo:inline font-weight="bold">operator</fo:inline> <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">short</fo:inline>() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id331597"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/greg_ymd.hpp">boost/date_time/gregorian/greg_ymd.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id495297" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::year_month_day_base&lt; <fo:basic-link internal-destination="greg_year">greg_year</fo:basic-link>, <fo:basic-link internal-destination="greg_month">greg_month</fo:basic-link>, <fo:basic-link internal-destination="greg_day">greg_day</fo:basic-link> &gt; greg_year_month_day;
&#xA0;&#xA0;}
}</fo:block></fo:block><fo:block id="id405081"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/gregorian.hpp">boost/date_time/gregorian/gregorian.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Single file header that provides overall include for all elements of the gregorian date-time system. This includes the various types defined, but also other functions for formatting and parsing.</fo:block></fo:block><fo:block id="id369276"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/gregorian_types.hpp">boost/date_time/gregorian/gregorian_types.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Single file header that defines most of the types for the gregorian date-time system.</fo:block><fo:block id="id495389" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::period&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link>, date_duration &gt; date_period;  <fo:inline font-style="italic">// Date periods for the gregorian system. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::year_based_generator&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt; year_based_generator;  <fo:inline font-style="italic">// A unifying date_generator base type. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::partial_date&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt; partial_date;  <fo:inline font-style="italic">// A date generation object type. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::nth_kday_of_month&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt; nth_kday_of_month;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> nth_kday_of_month nth_day_of_the_week_in_month;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::first_kday_of_month&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt; first_kday_of_month;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> first_kday_of_month first_day_of_the_week_in_month;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::last_kday_of_month&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt; last_kday_of_month;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> last_kday_of_month last_day_of_the_week_in_month;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::first_kday_after&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt; first_kday_after;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> first_kday_after first_day_of_the_week_after;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::first_kday_before&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt; first_kday_before;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> first_kday_before first_day_of_the_week_before;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::day_clock&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt; day_clock;  <fo:inline font-style="italic">// A clock to get the current day from the local computer. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::date_itr_base&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt; date_iterator;  <fo:inline font-style="italic">// Base date_iterator type for gregorian types. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::date_itr&lt; date_time::day_functor&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt;, <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt; day_iterator;  <fo:inline font-style="italic">// A day level iterator. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::date_itr&lt; date_time::week_functor&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt;, <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt; week_iterator;  <fo:inline font-style="italic">// A week level iterator. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::date_itr&lt; date_time::month_functor&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt;, <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt; month_iterator;  <fo:inline font-style="italic">// A month level iterator. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::date_itr&lt; date_time::year_functor&lt; <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt;, <fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> &gt; year_iterator;  <fo:inline font-style="italic">// A year level iterator. </fo:inline>
&#xA0;&#xA0;}
}</fo:block></fo:block><fo:block id="id345616"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/gregorian/parsers.hpp">boost/date_time/gregorian/parsers.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id495776" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> gregorian {

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Deprecated: Use from_simple_string. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> <fo:wrapper id="from_string"/>from_string(std::string s);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// From delimited date string where with order year-month-day eg: 2002-1-25 or 2003-Jan-25 (full month name is also accepted). </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> <fo:wrapper id="from_simple_string"/>from_simple_string(std::string s);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// From delimited date string where with order year-month-day eg: 1-25-2003 or Jan-25-2003 (full month name is also accepted). </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> <fo:wrapper id="from_us_string"/>from_us_string(std::string s);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// From delimited date string where with order day-month-year eg: 25-1-2002 or 25-Jan-2003 (full month name is also accepted). </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> <fo:wrapper id="from_uk_string"/>from_uk_string(std::string s);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// From iso type date string where with order year-month-day eg: 20020125. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> <fo:wrapper id="from_undelimited_string"/>from_undelimited_string(std::string s);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// From iso type date string where with order year-month-day eg: 20020125. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> <fo:wrapper id="date_from_iso_string"/>date_from_iso_string(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; s);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Stream should hold a date in the form of: 2002-1-25. Month number, abbrev, or name are accepted. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> iterator_type&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.gregorian.date">date</fo:basic-link> <fo:wrapper id="from_stream"/>from_stream(iterator_type beg, iterator_type end);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Function to parse a date_period from a string (eg: [2003-Oct-31/2003-Dec-25]). </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;date_period <fo:wrapper id="date_period_from_string"/>date_period_from_string(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; s);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Function to parse a date_period from a wstring (eg: [2003-Oct-31/2003-Dec-25]). </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;date_period <fo:wrapper id="date_period_from_wstring"/>date_period_from_wstring(<fo:inline font-weight="bold">const</fo:inline> std::wstring &amp; s);
&#xA0;&#xA0;}
}</fo:block></fo:block></fo:block><fo:block id="posix_time_reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Posix Time Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id367327"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/posix_time/conversion.hpp">boost/date_time/posix_time/conversion.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id496053" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> posix_time {

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Function that converts a time_t into a ptime. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:wrapper id="from_time_t"/>from_time_t(std::time_t t);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type&gt; time_type <fo:basic-link internal-destination="from_ftime">from_ftime</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> FILETIME &amp;);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="from_ftime"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function template from_ftime</fo:block></fo:block><fo:block space-after="1em">Function template from_ftime <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Function to create a time object from an initialized FILETIME struct. </fo:block></fo:block><fo:block>boost::posix_time::from_ftime</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496149"><fo:block/><fo:block id="id496150" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> time_type&gt; time_type from_ftime(<fo:inline font-weight="bold">const</fo:inline> FILETIME &amp; ft);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496180"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Function to create a time object from an initialized FILETIME struct. A FILETIME struct holds 100-nanosecond units (0.0000001). When built with microsecond resolution the FILETIME's sub second value will be truncated. Nanosecond resolution has no truncation.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note ftime is part of the Win32 API, so it is not portable to non-windows platforms. </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id376463"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/posix_time/date_duration_operators.hpp">boost/date_time/posix_time/date_duration_operators.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Operators for ptime and optional gregorian types. Operators use snap-to-end-of-month behavior. Further details on this behavior can be found in reference for date_time/date_duration_types.hpp and documentation for month and year iterators.</fo:block><fo:block id="id496218" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> posix_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:basic-link internal-destination="id317131"><fo:inline font-weight="bold">operator</fo:inline>+</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp;, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::months &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:basic-link internal-destination="id427352"><fo:inline font-weight="bold">operator</fo:inline>+=</fo:basic-link>(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp;, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::months &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:basic-link internal-destination="id419875"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp;, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::months &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:basic-link internal-destination="id412521"><fo:inline font-weight="bold">operator</fo:inline>-=</fo:basic-link>(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp;, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::months &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:basic-link internal-destination="id322621"><fo:inline font-weight="bold">operator</fo:inline>+</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp;, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::years &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:basic-link internal-destination="id327656"><fo:inline font-weight="bold">operator</fo:inline>+=</fo:basic-link>(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp;, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::years &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:basic-link internal-destination="id320262"><fo:inline font-weight="bold">operator</fo:inline>-</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp;, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::years &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:basic-link internal-destination="id319945"><fo:inline font-weight="bold">operator</fo:inline>-=</fo:basic-link>(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp;, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::years &amp;);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="id317131"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function operator+</fo:block></fo:block><fo:block space-after="1em">Function operator+ <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::posix_time::operator+</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496583"><fo:block/><fo:block id="id496584" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>+(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp; t, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::months &amp; m);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496626"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Adds a months object and a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id427352"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function operator+=</fo:block></fo:block><fo:block space-after="1em">Function operator+= <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::posix_time::operator+=</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496653"><fo:block/><fo:block id="id496654" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>+=(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp; t, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::months &amp; m);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496689"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Adds a months object to a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id419875"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function operator-</fo:block></fo:block><fo:block space-after="1em">Function operator- <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::posix_time::operator-</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496716"><fo:block/><fo:block id="id496717" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp; t, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::months &amp; m);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496758"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Subtracts a months object and a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id412521"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function operator-=</fo:block></fo:block><fo:block space-after="1em">Function operator-= <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::posix_time::operator-=</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496786"><fo:block/><fo:block id="id496787" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>-=(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp; t, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::months &amp; m);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496822"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Subtracts a months object from a ptime. Result will be same day-of-month as ptime unless original day was the last day of month. see date_time::months_duration for more details </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id322621"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function operator+</fo:block></fo:block><fo:block space-after="1em">Function operator+ <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::posix_time::operator+</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496850"><fo:block/><fo:block id="id496851" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>+(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp; t, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::years &amp; y);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496892"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Adds a years object and a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id327656"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function operator+=</fo:block></fo:block><fo:block space-after="1em">Function operator+= <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::posix_time::operator+=</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496919"><fo:block/><fo:block id="id496921" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>+=(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp; t, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::years &amp; y);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496956"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Adds a years object to a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id320262"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function operator-</fo:block></fo:block><fo:block space-after="1em">Function operator- <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::posix_time::operator-</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id496983"><fo:block/><fo:block id="id496984" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>-(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp; t, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::years &amp; y);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id497025"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Subtracts a years object and a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id319945"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function operator-=</fo:block></fo:block><fo:block space-after="1em">Function operator-= <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::posix_time::operator-=</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id497052"><fo:block/><fo:block id="id497054" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>-=(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp; t, <fo:inline font-weight="bold">const</fo:inline> boost::gregorian::years &amp; y);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id497088"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Subtracts a years object from a ptime. Result will be same month and day-of-month as ptime unless original day was the last day of month. see date_time::years_duration for more details </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id310460"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/posix_time/posix_time.hpp">boost/date_time/posix_time/posix_time.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Global header file to get all of posix time types</fo:block></fo:block><fo:block id="id444833"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/posix_time/posix_time_config.hpp">boost/date_time/posix_time/posix_time_config.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id497134" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> posix_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="simple_time_rep">simple_time_rep</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="posix_time_system_config">posix_time_system_config</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id381340">millisec_posix_time_system_config</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::time_resolution_traits&lt; boost::date_time::time_resolution_traits_adapted64_impl, boost::date_time::nano, 1000000000, 9 &gt; time_res_traits;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="id344570"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class time_duration</fo:block></fo:block><fo:block space-after="1em">Class time_duration <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Base time duration type. </fo:block></fo:block><fo:block>boost::posix_time::time_duration</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id497251"><fo:block/><fo:block id="id497253" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> time_duration {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_res_traits&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; rep_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_res_traits::day_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; day_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_res_traits::hour_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; hour_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_res_traits::min_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; min_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_res_traits::sec_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; sec_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_res_traits::fractional_seconds_type fractional_seconds_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_res_traits::tick_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; tick_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_res_traits::impl_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; impl_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id344570construct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id439326-bb">time_duration</fo:basic-link>(hour_type, min_type, sec_type, fractional_seconds_type = 0);
&#xA0;&#xA0;<fo:basic-link internal-destination="id327776-bb">time_duration</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id327779-bb">time_duration</fo:basic-link>(boost::date_time::special_values);
&#xA0;&#xA0;<fo:basic-link internal-destination="id403560-bb">time_duration</fo:basic-link>(impl_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id318917-bb">public member functions</fo:basic-link></fo:inline>

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id394655-bb">private member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id497427"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id497430"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_duration construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id344570construct-copy-destruct"/><fo:inline font-family="monospace">time_duration</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id497446" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id497452" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id497454" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id439326-bb"/>time_duration(hour_type hour, min_type min, sec_type sec, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;fractional_seconds_type fs = 0);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id497470" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id497472" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id327776-bb"/>time_duration();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id497486" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id497488" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id327779-bb"/>time_duration(boost::date_time::special_values sv);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct from special_values. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id497505" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id497507" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id403560-bb"/>time_duration(impl_type ticks);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id497521"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_duration public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id318917-bb"/><fo:inline font-family="monospace">time_duration</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id497535" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block><fo:block id="id497541"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">time_duration private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id394655-bb"/><fo:inline font-family="monospace">time_duration</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id497555" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="simple_time_rep"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Struct simple_time_rep</fo:block></fo:block><fo:block space-after="1em">Struct simple_time_rep <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Simple implementation for the time rep. </fo:block></fo:block><fo:block>boost::posix_time::simple_time_rep</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id497582"><fo:block/><fo:block id="id497584" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> simple_time_rep {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> gregorian::date date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link>&#xA0;&#xA0; time_duration_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="simple_time_repconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id333473-bb">simple_time_rep</fo:basic-link>(date_type, time_duration_type);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id396812-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id336338-bb">is_special</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id419814-bb">is_pos_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id368096-bb">is_neg_infinity</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id383574-bb">is_not_a_date_time</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;date_type day;
&#xA0;&#xA0;time_duration_type time_of_day;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id497758"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id497762"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">simple_time_rep construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="simple_time_repconstruct-copy-destruct"/><fo:inline font-family="monospace">simple_time_rep</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id497778" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id497784" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id497786" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id333473-bb"/>simple_time_rep(date_type d, time_duration_type tod);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id497801"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">simple_time_rep public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id396812-bb"/><fo:inline font-family="monospace">simple_time_rep</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id497815" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id497821" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id497824" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id336338-bb"/>is_special() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id497851" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id497853" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id419814-bb"/>is_pos_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id497881" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id497883" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id368096-bb"/>is_neg_infinity() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id497911" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id497913" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id383574-bb"/>is_not_a_date_time() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="posix_time_system_config"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class posix_time_system_config</fo:block></fo:block><fo:block space-after="1em">Class posix_time_system_config <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::posix_time::posix_time_system_config</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id497958"><fo:block/><fo:block id="id497959" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> posix_time_system_config {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="simple_time_rep">simple_time_rep</fo:basic-link>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_rep_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> gregorian::date&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> gregorian::date_duration&#xA0;&#xA0; date_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_res_traits::tick_type int_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_res_traits&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; resolution_traits;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id322936-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0; <fo:basic-link internal-destination="id322942-bb">BOOST_STATIC_CONSTANT</fo:basic-link>(boost::int64_t, tick_per_second = 1000000000) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id498069"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id498073"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">posix_time_system_config public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id322936-bb"/><fo:inline font-family="monospace">posix_time_system_config</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id498088" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id498094" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id498096" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"> <fo:wrapper id="id322942-bb"/>BOOST_STATIC_CONSTANT(boost::int64_t , tick_per_second  = 1000000000) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id381340"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class millisec_posix_time_system_config</fo:block></fo:block><fo:block space-after="1em">Class millisec_posix_time_system_config <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::posix_time::millisec_posix_time_system_config</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id498131"><fo:block/><fo:block id="id498132" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> millisec_posix_time_system_config {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> boost::int64_t&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_rep_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> gregorian::date&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; date_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> gregorian::date_duration&#xA0;&#xA0; date_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_res_traits::tick_type int_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_res_traits::impl_type impl_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_res_traits&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; resolution_traits;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id301094-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0; <fo:basic-link internal-destination="id372681-bb">BOOST_STATIC_CONSTANT</fo:basic-link>(boost::int64_t, tick_per_second = 1000000) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id498242"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id498246"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">millisec_posix_time_system_config public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id301094-bb"/><fo:inline font-family="monospace">millisec_posix_time_system_config</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id498261" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id498267" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id498269" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"> <fo:wrapper id="id372681-bb"/>BOOST_STATIC_CONSTANT(boost::int64_t , tick_per_second  = 1000000) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id300614"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/posix_time/posix_time_duration.hpp">boost/date_time/posix_time/posix_time_duration.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id498303" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> posix_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="hours">hours</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="minutes">minutes</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="seconds">seconds</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::subsecond_duration&lt; <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link>, 1000 &gt; millisec;  <fo:inline font-style="italic">// Allows expression of durations as milli seconds. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::subsecond_duration&lt; <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link>, 1000 &gt; milliseconds;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::subsecond_duration&lt; <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link>, 1000000 &gt; microsec;  <fo:inline font-style="italic">// Allows expression of durations as micro seconds. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::subsecond_duration&lt; <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link>, 1000000 &gt; microseconds;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::subsecond_duration&lt; <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link>, 1000000000 &gt; nanosec;  <fo:inline font-style="italic">// Allows expression of durations as nano seconds. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::subsecond_duration&lt; <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link>, 1000000000 &gt; nanoseconds;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="hours"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class hours</fo:block></fo:block><fo:block space-after="1em">Class hours <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Allows expression of durations as an hour count. </fo:block></fo:block><fo:block>boost::posix_time::hours</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id498503"><fo:block/><fo:block id="id498504" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> hours : <fo:inline font-weight="bold">public</fo:inline> boost::posix_time::time_duration {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="hoursconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id368009-bb">hours</fo:basic-link>(<fo:inline font-weight="bold">long</fo:inline>);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id368002-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id498571"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id498575"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">hours construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="hoursconstruct-copy-destruct"/><fo:inline font-family="monospace">hours</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id498590" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id498596" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id498598" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id368009-bb"/>hours(<fo:inline font-weight="bold">long</fo:inline> h);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id498618"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">hours public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id368002-bb"/><fo:inline font-family="monospace">hours</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id498633" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="minutes"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class minutes</fo:block></fo:block><fo:block space-after="1em">Class minutes <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Allows expression of durations as a minute count. </fo:block></fo:block><fo:block>boost::posix_time::minutes</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id498659"><fo:block/><fo:block id="id498660" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> minutes : <fo:inline font-weight="bold">public</fo:inline> boost::posix_time::time_duration {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="minutesconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id314042-bb">minutes</fo:basic-link>(<fo:inline font-weight="bold">long</fo:inline>);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id314036-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id498728"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id498732"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">minutes construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="minutesconstruct-copy-destruct"/><fo:inline font-family="monospace">minutes</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id498746" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id498752" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id498755" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id314042-bb"/>minutes(<fo:inline font-weight="bold">long</fo:inline> m);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id498774"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">minutes public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id314036-bb"/><fo:inline font-family="monospace">minutes</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id498789" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="seconds"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class seconds</fo:block></fo:block><fo:block space-after="1em">Class seconds <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Allows expression of durations as a seconds count. </fo:block></fo:block><fo:block>boost::posix_time::seconds</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id498816"><fo:block/><fo:block id="id498817" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> seconds : <fo:inline font-weight="bold">public</fo:inline> boost::posix_time::time_duration {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="secondsconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id368870-bb">seconds</fo:basic-link>(<fo:inline font-weight="bold">long</fo:inline>);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id407627-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id498884"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id498888"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">seconds construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="secondsconstruct-copy-destruct"/><fo:inline font-family="monospace">seconds</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id498902" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id498909" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id498911" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id368870-bb"/>seconds(<fo:inline font-weight="bold">long</fo:inline> s);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id498931"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">seconds public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id407627-bb"/><fo:inline font-family="monospace">seconds</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id498946" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id330577"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/posix_time/posix_time_system.hpp">boost/date_time/posix_time/posix_time_system.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id498968" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> posix_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::split_timedate_system&lt; posix_time_system_config, 1000000000 &gt; posix_time_system;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::counted_time_rep&lt; millisec_posix_time_system_config &gt; int64_time_rep;
&#xA0;&#xA0;}
}</fo:block></fo:block><fo:block id="id391049"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/posix_time/posix_time_types.hpp">boost/date_time/posix_time/posix_time_types.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id499022" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> posix_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::time_itr&lt; <fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &gt; time_iterator;  <fo:inline font-style="italic">// Iterator over a defined time duration. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::second_clock&lt; ptime::date_type, <fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &gt; second_clock;  <fo:inline font-style="italic">// A time clock that has a resolution of one second. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::microsec_clock&lt; <fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &gt; microsec_clock;  <fo:inline font-style="italic">// A time clock that has a resolution of one microsecond. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::null_dst_rules&lt; ptime::date_type, <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link> &gt; no_dst;  <fo:inline font-style="italic">// Define a dst null dst rule for the posix_time system. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::us_dst_rules&lt; ptime::date_type, <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link> &gt; us_dst;  <fo:inline font-style="italic">// Define US dst rule calculator for the posix_time system. </fo:inline>
&#xA0;&#xA0;}
}</fo:block></fo:block><fo:block id="id408599"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/posix_time/ptime.hpp">boost/date_time/posix_time/ptime.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id499160" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> posix_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="ptime">ptime</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="ptime"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Class ptime</fo:block></fo:block><fo:block space-after="1em">Class ptime <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Time type with no timezone or other adjustments. </fo:block></fo:block><fo:block>boost::posix_time::ptime</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id499213"><fo:block/><fo:block id="id499214" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> ptime {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> posix_time_system&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_system_type;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_system_type::time_rep_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_rep_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> time_system_type::time_duration_type time_duration_type;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="ptime">ptime</fo:basic-link>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; time_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="ptimeconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id373926-bb">ptime</fo:basic-link>(gregorian::date, time_duration_type);
&#xA0;&#xA0;<fo:basic-link internal-destination="id420093-bb">ptime</fo:basic-link>(gregorian::date);
&#xA0;&#xA0;<fo:basic-link internal-destination="id342248-bb">ptime</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id430161-bb">ptime</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> special_values);
&#xA0;&#xA0;<fo:basic-link internal-destination="id356296-bb">ptime</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id394759-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id499368"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id499372"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">ptime construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="ptimeconstruct-copy-destruct"/><fo:inline font-family="monospace">ptime</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id499387" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id499393" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id499395" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id373926-bb"/>ptime(gregorian::date d, time_duration_type td);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct with date and offset in day. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id499412" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id499415" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id420093-bb"/>ptime(gregorian::date d);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct a time at start of the given day (midnight). </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id499431" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id499434" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id342248-bb"/>ptime(<fo:inline font-weight="bold">const</fo:inline> time_rep_type &amp; rhs);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Copy from time_rep. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id499457" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id499460" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id430161-bb"/>ptime(<fo:inline font-weight="bold">const</fo:inline> special_values sv);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct from special value. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id499483" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id499485" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id356296-bb"/>ptime();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id499498"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">ptime public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id394759-bb"/><fo:inline font-family="monospace">ptime</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id499513" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id356305"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/posix_time/time_formatters.hpp">boost/date_time/posix_time/time_formatters.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id499536" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> posix_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; charT &gt; <fo:wrapper id="id418825"/>to_simple_string_type(<fo:basic-link internal-destination="id344570">time_duration</fo:basic-link> td);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; charT &gt; <fo:wrapper id="id423544"/>to_iso_string_type(<fo:basic-link internal-destination="id344570">time_duration</fo:basic-link> td);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Time to simple format CCYY-mmm-dd hh:mm:ss.fffffff. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; charT &gt; <fo:wrapper id="id381736"/>to_simple_string_type(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> t);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; charT &gt; <fo:wrapper id="id316012"/>to_simple_string_type(time_period tp);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; charT &gt; <fo:wrapper id="id244053"/>to_iso_string_type(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> t);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; charT &gt; <fo:wrapper id="id363548"/>to_iso_extended_string_type(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> t);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Time duration to wstring -hh::mm::ss.fffffff. Example: 10:09:03.0123456. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::wstring <fo:wrapper id="id320202"/>to_simple_wstring(<fo:basic-link internal-destination="id344570">time_duration</fo:basic-link> td);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Time duration in iso format -hhmmss,fffffff Example: 10:09:03,0123456. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::wstring <fo:wrapper id="id399363"/>to_iso_wstring(<fo:basic-link internal-destination="id344570">time_duration</fo:basic-link> td);
&#xA0;&#xA0;&#xA0;&#xA0;std::wstring <fo:wrapper id="id352792"/>to_simple_wstring(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> t);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Convert to wstring of form [YYYY-mmm-DD HH:MM::SS.ffffff/YYYY-mmm-DD HH:MM::SS.fffffff]. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::wstring <fo:wrapper id="id305907"/>to_simple_wstring(time_period tp);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Convert iso short form YYYYMMDDTHHMMSS where T is the date-time separator. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::wstring <fo:wrapper id="id424904"/>to_iso_wstring(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> t);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Convert to form YYYY-MM-DDTHH:MM:SS where T is the date-time separator. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::wstring <fo:wrapper id="id368354"/>to_iso_extended_wstring(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> t);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_istream&lt; charT &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id381911"/><fo:inline font-weight="bold">operator</fo:inline>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link> &amp; td);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_istream&lt; charT &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id328259"/><fo:inline font-weight="bold">operator</fo:inline>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, <fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp; pt);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_istream&lt; charT &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id425116"><fo:inline font-weight="bold">operator</fo:inline>&gt;&gt;</fo:basic-link>(std::basic_istream&lt; charT &gt; &amp;, time_period &amp;);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="id425116"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function template operator&gt;&gt;</fo:block></fo:block><fo:block space-after="1em">Function template operator&gt;&gt; <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::posix_time::operator&gt;&gt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id500022"><fo:block/><fo:block id="id500023" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;std::basic_istream&lt; charT &gt; &amp; 
&#xA0;&#xA0;<fo:inline font-weight="bold">operator</fo:inline>&gt;&gt;(std::basic_istream&lt; charT &gt; &amp; is, time_period &amp; tp);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id500054"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">operator&gt;&gt; for time_period. time_period must be in "[date time_duration/date time_duration]" format. </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id431429"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/posix_time/time_formatters_limited.hpp">boost/date_time/posix_time/time_formatters_limited.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id500081" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> posix_time {

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Time duration to string -hh::mm::ss.fffffff. Example: 10:09:03.0123456. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::string <fo:wrapper id="id327343"/>to_simple_string(<fo:basic-link internal-destination="id344570">time_duration</fo:basic-link> td);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Time duration in iso format -hhmmss,fffffff Example: 10:09:03,0123456. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::string <fo:wrapper id="id375502"/>to_iso_string(<fo:basic-link internal-destination="id344570">time_duration</fo:basic-link> td);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Time to simple format CCYY-mmm-dd hh:mm:ss.fffffff. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::string <fo:wrapper id="id304753"/>to_simple_string(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> t);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Convert to string of form [YYYY-mmm-DD HH:MM::SS.ffffff/YYYY-mmm-DD HH:MM::SS.fffffff]. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::string <fo:wrapper id="id354901"/>to_simple_string(time_period tp);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Convert iso short form YYYYMMDDTHHMMSS where T is the date-time separator. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::string <fo:wrapper id="id343584"/>to_iso_string(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> t);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Convert to form YYYY-MM-DDTHH:MM:SS where T is the date-time separator. </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;std::string <fo:wrapper id="id426569"/>to_iso_extended_string(<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> t);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// ostream operator for posix_time::time_duration </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id400016"/><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link> &amp; td);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// ostream operator for posix_time::ptime </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id431835"/><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="ptime">ptime</fo:basic-link> &amp; t);

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// ostream operator for posix_time::time_period </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT, <fo:inline font-weight="bold">typename</fo:inline> traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; charT, traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:wrapper id="id286003"/><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; charT, traits &gt; &amp; os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> time_period &amp; tp);
&#xA0;&#xA0;}
}</fo:block></fo:block><fo:block id="id303750"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/posix_time/time_parsers.hpp">boost/date_time/posix_time/time_parsers.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id500426" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> posix_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id344570">time_duration</fo:basic-link> <fo:basic-link internal-destination="duration_from_string">duration_from_string</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:wrapper id="time_from_string"/>time_from_string(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; s);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ptime">ptime</fo:basic-link> <fo:wrapper id="from_iso_string"/>from_iso_string(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; s);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="duration_from_string"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="10pt">Function duration_from_string</fo:block></fo:block><fo:block space-after="1em">Function duration_from_string <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Creates a time_duration object from a delimited string. </fo:block></fo:block><fo:block>boost::posix_time::duration_from_string</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id500539"><fo:block/><fo:block id="id500540" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="id344570">time_duration</fo:basic-link> duration_from_string(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; s);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id500560"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Expected format for string is "[-]h[h][:mm][:ss][.fff]". A negative duration will be created if the first character in string is a '-', all other '-' will be treated as delimiters. Accepted delimiters are "-:,.". </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id405012"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Header &lt;<fo:basic-link external-destination="../../boost/date_time/posix_time/time_period.hpp">boost/date_time/posix_time/time_period.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id500587" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> posix_time {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> date_time::period&lt; <fo:basic-link internal-destination="ptime">ptime</fo:basic-link>, <fo:basic-link internal-destination="id344570">time_duration</fo:basic-link> &gt; time_period;  <fo:inline font-style="italic">// Time period type. </fo:inline>
&#xA0;&#xA0;}
}</fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Function</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Function</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="function"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Boost.Function</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Douglas Gregor <fo:inline font-family="monospace"><fo:inline keep-together.within-line="always" hyphenate="false">&lt;dgregor -at- cs.indiana.edu&gt;</fo:inline></fo:inline></fo:block></fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2001-2004 Douglas Gregor</fo:block><fo:block><fo:block id="id500670"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use, modification and distribution is subject to the Boost
    Software License, Version 1.0. (See accompanying file
    <fo:inline font-family="monospace">LICENSE_1_0.txt</fo:inline> or copy at <fo:basic-link external-destination="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</fo:basic-link>)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="function.intro"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="17.28pt">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The Boost.Function library contains a family of class templates
that are function object wrappers. The notion is similar to a
generalized callback. It shares features with function pointers in
that both define a call interface (e.g., a function taking two integer
arguments and returning a floating-point value) through which some
implementation can be called, and the implementation that is invoked
may change throughout the course of the program.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Generally, any place in which a function pointer would be used
to defer a call or make a callback, Boost.Function can be used instead
to allow the user greater flexibility in the implementation of the
target. Targets can be any 'compatible' function object (or function
pointer), meaning that the arguments to the interface designated by
Boost.Function can be converted to the arguments of the target
function object.</fo:block></fo:block><fo:block id="function.history"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">History &amp; Compatibility Notes</fo:marker><fo:block font-size="17.28pt">History &amp; Compatibility Notes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id500735" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id500738" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Version 1.30.0</fo:inline>: </fo:block><fo:list-block id="id500748" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id500751" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>All features deprecated in version 1.29.0 have
      been removed from Boost.Function.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id500756" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link></fo:inline>
      and <fo:inline font-family="monospace"><fo:basic-link internal-destination="functionN">boost::functionN</fo:basic-link></fo:inline> objects
      can be assigned to 0 (semantically equivalent to calling
      <fo:inline font-family="monospace"><fo:basic-link internal-destination="id377153-bb">clear</fo:basic-link>()</fo:inline>) and
      compared against 0 (semantically equivalent to calling
      <fo:inline font-family="monospace"><fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>()</fo:inline>).</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id500817" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The Boost.Function code is now generated
      entirely by the <fo:basic-link external-destination="../../libs/preprocessor/index.html">Preprocessor</fo:basic-link> library,
      so it is now possible to generate
      <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link></fo:inline> and
      <fo:inline font-family="monospace"><fo:basic-link internal-destination="functionN">boost::functionN</fo:basic-link></fo:inline> class
      templates for any number of arguments.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id500854" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The
      <fo:basic-link internal-destination="bad_function_call">boost::bad_function_call</fo:basic-link> exception class
      was introduced.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id500870" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Version 1.29.0</fo:inline>:
  Boost.Function has been partially redesigned to minimize the
  interface and make it cleaner. Several seldom- or never-used
  features of the older Boost.Function have been deprecated and will
  be removed in the near future. Here is a list of features that have
  been deprecated, the likely impact of the deprecations, and how to
  adjust your code:

<fo:list-block id="id500885" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id500888" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The <fo:inline font-family="monospace">boost::function</fo:inline> class template syntax has
  changed. The old syntax, e.g., <fo:inline font-family="monospace">boost::function&lt;int, float,
  double, std::string&gt;</fo:inline>, has been changed to a more natural
  syntax <fo:inline font-family="monospace">boost::function&lt;int (float, double,
  std::string)&gt;</fo:inline>, where all return and argument types are
  encoded in a single function type parameter. Any other template
  parameters (e.g., the <fo:inline font-family="monospace">Allocator</fo:inline>) follow this single
  parameter.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The resolution to this change depends on the
  abilities of your compiler: if your compiler supports template
  partial specialization and can parse function types (most do), modify 
  your code to use the newer
  syntax (preferable) or directly use one of the
  <fo:inline font-family="monospace">functionN</fo:inline> classes whose syntax has not
  changed. If your compiler does not support template partial
  specialization or function types, you must take the latter option and 
  use the numbered Boost.Function classes. This option merely requires 
  changing types such as <fo:inline font-family="monospace">boost::function&lt;void, int, int&gt;</fo:inline>
  to <fo:inline font-family="monospace">boost::function2&lt;void, int, int&gt;</fo:inline> (adding the number of
  function arguments to the end of the class name).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Support for the old syntax with the
  <fo:inline font-family="monospace">boost::function</fo:inline> class template will persist for a short
  while, but will eventually be removed so that we can provide better
  error messages and link compatibility. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id500973" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The invocation
  policy template parameter (<fo:inline font-family="monospace">Policy</fo:inline>) has been deprecated
  and will be removed. There is no direct equivalent to this rarely
  used feature.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id500986" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The mixin template parameter
  (<fo:inline font-family="monospace">Mixin</fo:inline>) has been deprecated and will be removed. There
  is not direct equivalent to this rarely used feature.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id500998" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The
  <fo:inline font-family="monospace">set</fo:inline> methods have been deprecated and will be
  removed. Use the assignment operator instead.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="function.tutorial"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Tutorial</fo:marker><fo:block font-size="17.28pt">Tutorial</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Boost.Function has two syntactical forms: the preferred form
and the portable form. The preferred form fits more closely with the
C++ language and reduces the number of separate template parameters
that need to be considered, often improving readability; however, the
preferred form is not supported on all platforms due to compiler
bugs. The compatible form will work on all compilers supported by
Boost.Function. Consult the table below to determine which syntactic
form to use for your compiler.

  <fo:block id="id501027" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:list-block id="id501045" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id501049" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>GNU C++ 2.95.x, 3.0.x, 3.1.x</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id501053" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Comeau C++ 4.2.45.2</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id501057" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>SGI MIPSpro 7.3.0</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id501061" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Intel C++ 5.0, 6.0</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id501065" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Compaq's cxx 6.2</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id501069" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Microsoft Visual C++ 7.1</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:list-block id="id501075" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id501078" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-style="italic">Any compiler supporting the preferred syntax</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id501084" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Microsoft Visual C++ 6.0, 7.0</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id501088" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Borland C++ 5.5.1</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id501093" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Sun WorkShop 6 update 2 C++ 5.3</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id501097" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Metrowerks CodeWarrior 8.1</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> If your compiler does not appear in this list, please try the preferred syntax and report your results to the Boost list so that we can keep this table up-to-date.</fo:block><fo:block id="id501106"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Basic Usage</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> A function wrapper is defined simply
by instantiating the <fo:inline font-family="monospace">function</fo:inline> class
template with the desired return type and argument types, formulated
as a C++ function type. Any number of arguments may be supplied, up to
some implementation-defined limit (10 is the default maximum). The
following declares a function object wrapper
<fo:inline font-family="monospace">f</fo:inline> that takes two
<fo:inline font-family="monospace">int</fo:inline> parameters and returns a
<fo:inline font-family="monospace">float</fo:inline>:

  <fo:block id="id501145" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id501163" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link>&lt;float (int x, int y)&gt; f;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id501177" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="functionN">boost::function2</fo:basic-link>&lt;float, int, int&gt; f;</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> By default, function object wrappers are empty, so we can create a 
function object to assign to <fo:inline font-family="monospace">f</fo:inline>:

<fo:block id="id501200" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">struct int_div { 
  float operator()(int x, int y) const { return ((float)x)/y; }; 
};</fo:block><fo:block id="id501206" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">f = int_div();</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Now we can use <fo:inline font-family="monospace">f</fo:inline> to execute
the underlying function object
<fo:inline font-family="monospace">int_div</fo:inline>:

<fo:block id="id501228" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::cout &lt;&lt; f(5, 3) &lt;&lt; std::endl;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> We are free to assign any compatible function object to
<fo:inline font-family="monospace">f</fo:inline>. If
<fo:inline font-family="monospace">int_div</fo:inline> had been declared to take two
<fo:inline font-family="monospace">long</fo:inline> operands, the implicit
conversions would have been applied to the arguments without any user
interference. The only limit on the types of arguments is that they be
CopyConstructible, so we can even use references and arrays:

  <fo:block id="id501261" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id501277" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link>&lt;void (int values[], int n, int&amp; sum, float&amp; avg)&gt; sum_avg;</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block id="id501290" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id501306" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="functionN">boost::function4</fo:basic-link>&lt;void, int*, int, int&amp;, float&amp;&gt; sum_avg;</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block id="id501319" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">void do_sum_avg(int values[], int n, int&amp; sum, float&amp; avg)
{
  sum = 0;
  for (int i = 0; i &lt; n; i++)
    sum += values[i];
  avg = (float)sum / n;
}</fo:block><fo:block id="id501328" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">sum_avg = &amp;do_sum_avg;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Invoking a function object wrapper that does not actually
contain a function object is a precondition violation, much like
trying to call through a null function pointer, and will throw a <fo:basic-link internal-destination="bad_function_call">bad_function_call</fo:basic-link> exception). We can check for an
empty function object wrapper by using it in a boolean context (it evaluates <fo:inline font-family="monospace">true</fo:inline> if the wrapper is not empty) or compare it against <fo:inline font-family="monospace">0</fo:inline>. For instance:
<fo:block id="id501363" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">if (f)
  std::cout &lt;&lt; f(5, 3) &lt;&lt; std::endl;
else
  std::cout &lt;&lt; "f has no target, so it is unsafe to call" &lt;&lt; std::endl;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Alternatively,
<fo:inline font-family="monospace"><fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>()</fo:inline>
method will return whether or not the wrapper is empty.  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Finally, we can clear out a function target by assigning it to <fo:inline font-family="monospace">0</fo:inline> or by calling the <fo:inline font-family="monospace"><fo:basic-link internal-destination="id377153-bb">clear</fo:basic-link>()</fo:inline> member function, e.g., 
<fo:block id="id501411" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">f = 0;</fo:block></fo:block></fo:block><fo:block id="id501416"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Free functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Free function pointers can be considered singleton function objects with const function call operators, and can therefore be directly used with the function object wrappers: 
<fo:block id="id501425" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">float mul_ints(int x, int y) { return ((float)x) * y; }</fo:block><fo:block id="id501431" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">f = &amp;mul_ints;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Note that the <fo:inline font-family="monospace">&amp;</fo:inline> isn't really necessary unless you happen to be using Microsoft Visual C++ version 6. </fo:block></fo:block><fo:block id="id501448"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> In many systems, callbacks often call to member functions of a
particular object. This is often referred to as "argument binding",
and is beyond the scope of Boost.Function. The use of member functions
directly, however, is supported, so the following code is valid:

<fo:block id="id501459" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">struct X {
  int foo(int);
};</fo:block><fo:block id="id501465" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id501483" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link>&lt;int (X*, int)&gt; f;

f = &amp;X::foo;
  
X x;
f(&amp;x, 5);</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id501498" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="functionN">boost::function2</fo:basic-link>&lt;int, X*, int&gt; f;

f = &amp;X::foo;
  
X x;
f(&amp;x, 5);</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Several libraries exist that support argument binding. Three such libraries are summarized below:
<fo:list-block id="id501516" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id501517" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link external-destination="../../libs/bind/index.html">Bind</fo:basic-link>. This library allows binding of
  arguments for any function object. It is lightweight and very
  portable.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id501528" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The C++ Standard library. Using
  <fo:inline font-family="monospace">std::bind1st</fo:inline> and
  <fo:inline font-family="monospace">std::mem_fun</fo:inline> together one can bind
  the object of a pointer-to-member function for use with
  Boost.Function:

  <fo:block id="id501547" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id501566" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link>&lt;int (int)&gt; f;
X x;
f = std::bind1st(
      std::mem_fun(&amp;X::foo), &amp;x);
f(5); // Call x.foo(5)</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id501581" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="functionN">boost::function1</fo:basic-link>&lt;int, int&gt; f;
X x;
f = std::bind1st(
      std::mem_fun(&amp;X::foo), &amp;x);
f(5); // Call x.foo(5)</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id501596" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The <fo:basic-link internal-destination="lambda">Lambda</fo:basic-link> library. This library provides a powerful composition mechanism to construct function objects that uses very natural C++ syntax. Lambda requires a compiler that is reasonably conformant to the C++ standard. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="id501610"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">References to Function Objects</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> In some cases it is
  expensive (or semantically incorrect) to have Boost.Function clone a
  function object. In such cases, it is possible to request that
  Boost.Function keep only a reference to the actual function
  object. This is done using the <fo:inline font-family="monospace">ref</fo:inline>
  and <fo:inline font-family="monospace">cref</fo:inline> functions to wrap a
  reference to a function object:

  <fo:block id="id501635" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id501654" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">stateful_type a_function_object;
<fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link>&lt;int (int)&gt; f;
f = <fo:basic-link internal-destination="id376299">boost::ref</fo:basic-link>(a_function_object);

<fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link>&lt;int (int)&gt; f2(f);</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id501688" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">stateful_type a_function_object;
<fo:basic-link internal-destination="functionN">boost::function1</fo:basic-link>&lt;int, int&gt; f;
f = <fo:basic-link internal-destination="id376299">boost::ref</fo:basic-link>(a_function_object);

<fo:basic-link internal-destination="functionN">boost::function1</fo:basic-link>&lt;int, int&gt; f2(f);</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Here, <fo:inline font-family="monospace">f</fo:inline> will not make a copy
of <fo:inline font-family="monospace">a_function_object</fo:inline>, nor will
<fo:inline font-family="monospace">f2</fo:inline> when it is targeted to
<fo:inline font-family="monospace">f</fo:inline>'s reference to
<fo:inline font-family="monospace">a_function_object</fo:inline>. Additionally, when
using references to function objects, Boost.Function will not throw
exceptions during assignment or construction.
</fo:block></fo:block><fo:block id="id501758"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Comparing Boost.Function function objects</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Function object wrappers can be compared via <fo:inline font-family="monospace">==</fo:inline>
  or <fo:inline font-family="monospace">!=</fo:inline> against any function object that can be stored
  within the wrapper. If the function object wrapper contains a
  function object of that type, it will be compared against the given
  function object (which must be
  <fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link>). For instance:</fo:block><fo:block id="id501790" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int compute_with_X(X*, int);

f = &amp;X::foo;
assert(f == &amp;X::foo);
assert(&amp;compute_with_X != f);</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When comparing against an instance of
   <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link></fo:inline>, the address
   of the object in the
   <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link></fo:inline> is compared
   against the address of the object stored by the function object
   wrapper:</fo:block><fo:block id="id501830" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">a_stateful_object so1, so2;
f = <fo:basic-link internal-destination="id376299">boost::ref</fo:basic-link>(so1);
assert(f == <fo:basic-link internal-destination="id376299">boost::ref</fo:basic-link>(so1));
assert(f == so1); <fo:inline font-style="italic">// Only if a_stateful_object is <fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link></fo:inline>
assert(f != <fo:basic-link internal-destination="id376299">boost::ref</fo:basic-link>(so2));</fo:block></fo:block></fo:block><fo:block id="function.reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Reference</fo:marker><fo:block font-size="17.28pt">Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="function.definitions"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Definitions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id501892" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id501893" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A function object <fo:inline font-family="monospace">f</fo:inline> is
      <fo:inline font-style="italic">compatible</fo:inline> if for the given set of argument
      types <fo:inline font-family="monospace">Arg1</fo:inline>,
      <fo:inline font-family="monospace">Arg2</fo:inline>, ...,
      <fo:inline font-family="monospace">ArgN</fo:inline> and a
      return type <fo:inline font-family="monospace">ResultType</fo:inline>, the
      appropriate following function is well-formed:
<fo:block id="id501936" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-style="italic">// if ResultType is not <fo:inline font-weight="bold">void</fo:inline></fo:inline>
  ResultType foo(Arg1 arg1, Arg2 arg2, ..., Arg<fo:inline font-style="italic">N</fo:inline> arg<fo:inline font-style="italic">N</fo:inline>)
  {
    <fo:inline font-weight="bold">return</fo:inline> f(arg1, arg2, ..., arg<fo:inline font-style="italic">N</fo:inline>);
  }

  <fo:inline font-style="italic">// if ResultType is <fo:inline font-weight="bold">void</fo:inline></fo:inline>
  ResultType foo(Arg1 arg1, Arg2 arg2, ..., Arg<fo:inline font-style="italic">N</fo:inline> arg<fo:inline font-style="italic">N</fo:inline>)
  {
    f(arg1, arg2, ..., arg<fo:inline font-style="italic">N</fo:inline>);
  }
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> A special provision is made for pointers to member
      functions. Though they are not function objects, Boost.Function
      will adapt them internally to function objects. This requires
      that a pointer to member function of the form <fo:inline font-family="monospace">R
      (X::*mf)(Arg1, Arg2, ..., ArgN)
      cv-quals</fo:inline> be adapted to a
      function object with the following function call operator
      overloads:
<fo:block id="id502006" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename P</fo:inline>&gt;
  R <fo:inline font-weight="bold">operator</fo:inline>()(<fo:inline font-style="italic">cv-quals</fo:inline> P&amp; x, Arg1 arg1, Arg2 arg2, ..., Arg<fo:inline font-style="italic">N</fo:inline> arg<fo:inline font-style="italic">N</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>
  {
    <fo:inline font-weight="bold">return</fo:inline> (*x).*mf(arg1, arg2, ..., arg<fo:inline font-style="italic">N</fo:inline>);
  }
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id502061" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A function object <fo:inline font-family="monospace">f</fo:inline> of
      type <fo:inline font-family="monospace">F</fo:inline> is
      <fo:inline font-style="italic">stateless</fo:inline> if it is a function pointer or if
      <fo:inline font-family="monospace">boost::is_stateless&lt;T&gt;</fo:inline>
      is true. The construction of or copy to a Boost.Function object
      from a stateless function object will not cause exceptions to be
      thrown and will not allocate any storage.
      </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="header.boost.function.hpp"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/function.hpp">boost/function.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id502109" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="bad_function_call">bad_function_call</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="function_base">function_base</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> R, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Allocator = std::allocator&lt;<fo:inline font-weight="bold">void</fo:inline>&gt; &gt; 
  &#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id243473">swap</fo:basic-link>(<fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id367263-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, Functor);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id304156-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(Functor, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id307683-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id418996-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> U1, <fo:inline font-weight="bold">typename</fo:inline> U2, ..., <fo:inline font-weight="bold">typename</fo:inline> UN, <fo:inline font-weight="bold">typename</fo:inline> Allocator2&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id340873-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator1&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;U1, U2, ..., UN, Allocator2&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id273475-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, Functor);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id345580-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(Functor, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id393309-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id403770-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> U1, <fo:inline font-weight="bold">typename</fo:inline> U2, ..., <fo:inline font-weight="bold">typename</fo:inline> UN, <fo:inline font-weight="bold">typename</fo:inline> Allocator2&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id372280-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator1&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;U1, U2, ..., UN, Allocator2&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator = std::allocator&lt;<fo:inline font-weight="bold">void</fo:inline>&gt; &gt; 
  &#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id354066">swap</fo:basic-link>(<fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id235870-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;, Functor);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id318513-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(Functor, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id262984-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id349308-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature1, <fo:inline font-weight="bold">typename</fo:inline> Allocator1, <fo:inline font-weight="bold">typename</fo:inline> Signature2, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Allocator2&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id242840-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature1, Allocator1&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature2, Allocator2&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id256291-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;, Functor);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id428210-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(Functor, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id425558-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id409074-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature1, <fo:inline font-weight="bold">typename</fo:inline> Allocator1, <fo:inline font-weight="bold">typename</fo:inline> Signature2, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Allocator2&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id316198-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature1, Allocator1&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature2, Allocator2&gt;&amp;);
}</fo:block><fo:block break-before="page"><fo:block id="bad_function_call"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class bad_function_call</fo:block></fo:block><fo:block space-after="1em">Class bad_function_call <fo:inline font-family="serif">--</fo:inline> An exception type thrown when an instance of a <fo:inline font-family="monospace">function</fo:inline> object is empty when invoked.</fo:block><fo:block>boost::bad_function_call</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id504036"><fo:block/><fo:block id="id504037" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> bad_function_call : <fo:inline font-weight="bold">public</fo:inline> std::runtime_error {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="bad_function_callconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id365072-bb">bad_function_call</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id504087"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id504090"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">bad_function_call construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="bad_function_callconstruct-copy-destruct"/><fo:inline font-family="monospace">bad_function_call</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id504107" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id504113" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id504116" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id365072-bb"/>bad_function_call();</fo:block></fo:block><fo:list-block id="id504129" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id504133" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Constructs a <fo:inline font-family="monospace"><fo:basic-link internal-destination="bad_function_call">bad_function_call</fo:basic-link></fo:inline> exception object.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="function_base"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class function_base</fo:block></fo:block><fo:block space-after="1em">Class function_base <fo:inline font-family="serif">--</fo:inline> The common base class for all Boost.Function
    objects. Objects of type function_base may not be created
    directly.</fo:block><fo:block>boost::function_base</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id504174"><fo:block/><fo:block id="id504175" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> function_base {
<fo:inline font-weight="bold">public</fo:inline>:

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id429695-bb">capacity</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id346441-bb">empty</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id363180-bb">target access</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; Functor* <fo:basic-link internal-destination="id362089-bb">target</fo:basic-link>();
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; <fo:inline font-weight="bold">const</fo:inline> Functor* <fo:basic-link internal-destination="id252115-bb">target</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; <fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id236630-bb">contains</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Functor&amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id504352"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id504356"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">function_base capacity</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id429695-bb"/><fo:inline font-family="monospace">function_base</fo:inline> capacity</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id504370" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id504376" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id504378" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id346441-bb"/>empty() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id504405" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id504409" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">false</fo:inline> if <fo:inline font-family="monospace">this</fo:inline> has a target, and <fo:inline font-family="monospace">true</fo:inline> otherwise.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id504435" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id504443"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">function_base target access</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id363180-bb"/><fo:inline font-family="monospace">function_base</fo:inline> target access</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id504457" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id504463" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id360366-bb"><fo:block id="id504470" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; Functor* <fo:wrapper id="id362089-bb"/>target();
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; <fo:inline font-weight="bold">const</fo:inline> Functor* <fo:wrapper id="id252115-bb"/>target() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id504536" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id504539" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If <fo:inline font-family="monospace">this</fo:inline> stores a target of type
        <fo:inline font-family="monospace">Functor</fo:inline>, returns the address of the
        target. Otherwise, returns the NULL
        pointer.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id504562" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id504570" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id504572" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; <fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id236630-bb"/>contains(<fo:inline font-weight="bold">const</fo:inline> Functor&amp; f) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id504620" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id504624" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">true</fo:inline> if <fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id360366-bb">target</fo:basic-link>&lt;Functor&gt;()</fo:inline> is non-NULL and <fo:inline font-family="monospace"><fo:basic-link internal-destination="function_equal">function_equal</fo:basic-link>(*(this-&gt;target&lt;Functor&gt;()), f)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="functionN"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template functionN</fo:block></fo:block><fo:block space-after="1em">Class template functionN <fo:inline font-family="serif">--</fo:inline> A set of generalized function pointers that can be used for callbacks or wrapping function objects.</fo:block><fo:block>boost::functionN</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id504688"><fo:block/><fo:block id="id504689" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> R, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Allocator = std::allocator&lt;<fo:inline font-weight="bold">void</fo:inline>&gt; &gt; 
<fo:inline font-weight="bold">class</fo:inline> functionN : <fo:inline font-weight="bold">public</fo:inline> <fo:basic-link internal-destination="function_base">function_base</fo:basic-link> {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> R&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; result_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> Allocator allocator_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T1&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; argument_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// If N == 1</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T1&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; first_argument_type;&#xA0;  <fo:inline font-style="italic">// If N == 2</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T2&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; second_argument_type;  <fo:inline font-style="italic">// If N == 2</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T1&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; arg1_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T2&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; arg2_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;.
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;.
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;.
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> TN&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; argN_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// static constants</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">static</fo:inline> <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> arity = N;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="lambda">Lambda</fo:basic-link> library support</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Args&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> sig {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> result_type type;
&#xA0;&#xA0;};

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="functionNconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id383122-bb">functionN</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id319466-bb">functionN</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> F&gt; <fo:basic-link internal-destination="id325943-bb">functionN</fo:basic-link>(F);
&#xA0;&#xA0;functionN&amp; <fo:basic-link internal-destination="id243506-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id433349-bb">~functionN</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id363207-bb">modifiers</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id264499-bb">swap</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id356064-bb">clear</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id218197-bb">capacity</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id363748-bb">empty</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="id405855-bb"><fo:inline font-weight="bold">operator</fo:inline> safe_bool</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id235240-bb"><fo:inline font-weight="bold">operator</fo:inline>!</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id311150-bb">target access</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; Functor* <fo:basic-link internal-destination="id307750-bb">target</fo:basic-link>();
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; <fo:inline font-weight="bold">const</fo:inline> Functor* <fo:basic-link internal-destination="id308769-bb">target</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; <fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id355447-bb">contains</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Functor&amp;) <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id399301-bb">invocation</fo:basic-link></fo:inline>
&#xA0;&#xA0;result_type <fo:basic-link internal-destination="id316822-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(arg1_type, arg2_type, ..., argN_type) <fo:inline font-weight="bold">const</fo:inline>;
};

<fo:inline font-style="italic">// <fo:basic-link internal-destination="id253632-bb">specialized algorithms</fo:basic-link></fo:inline>
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id243473">swap</fo:basic-link>(<fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);

<fo:inline font-style="italic">// <fo:basic-link internal-destination="id443814-bb">comparison operators</fo:basic-link></fo:inline>
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id367263-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, Functor);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id304156-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(Functor, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id307683-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id418996-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> U1, <fo:inline font-weight="bold">typename</fo:inline> U2, ..., <fo:inline font-weight="bold">typename</fo:inline> UN, <fo:inline font-weight="bold">typename</fo:inline> Allocator2&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id340873-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator1&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;U1, U2, ..., UN, Allocator2&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id273475-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, Functor);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id345580-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(Functor, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id393309-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id403770-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> U1, <fo:inline font-weight="bold">typename</fo:inline> U2, ..., <fo:inline font-weight="bold">typename</fo:inline> UN, <fo:inline font-weight="bold">typename</fo:inline> Allocator2&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id372280-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator1&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;U1, U2, ..., UN, Allocator2&gt;&amp;);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id506303"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class template <fo:basic-link internal-destination="functionN">functionN</fo:basic-link> is
      actually a family of related classes <fo:basic-link internal-destination="functionN">function0</fo:basic-link>, <fo:basic-link internal-destination="functionN">function1</fo:basic-link>, etc., up to some
      implementation-defined maximum. In this context, <fo:inline font-family="monospace">N</fo:inline>
      refers to the number of parameters.</fo:block><fo:block id="id506343"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">functionN construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="functionNconstruct-copy-destruct"/><fo:inline font-family="monospace">functionN</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id506360" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id506366" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id506368" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id383122-bb"/>functionN();</fo:block></fo:block><fo:list-block id="id506381" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id506385" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id363748-bb">empty</fo:basic-link>()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506405" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506412" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id506414" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id319466-bb"/>functionN(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&amp; f);</fo:block></fo:block><fo:list-block id="id506442" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id506446" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Contains a copy of the <fo:inline font-family="monospace">f</fo:inline>'s target, if it has one, or is empty if <fo:inline font-family="monospace">f.<fo:basic-link internal-destination="id363748-bb">empty</fo:basic-link>()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506475" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw unless copying the target of <fo:inline font-family="monospace">f</fo:inline> throws.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506489" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id506492" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> F&gt; <fo:wrapper id="id325943-bb"/>functionN(F f);</fo:block></fo:block><fo:list-block id="id506518" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id506521" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>F is a function object Callable from <fo:inline font-family="monospace">this</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506535" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">*this</fo:inline> targets a copy of <fo:inline font-family="monospace">f</fo:inline> if <fo:inline font-family="monospace">f</fo:inline> is nonempty, or <fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id363748-bb">empty</fo:basic-link>()</fo:inline> if <fo:inline font-family="monospace">f</fo:inline> is empty.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506582" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw when <fo:inline font-family="monospace">f</fo:inline> is a stateless function object.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506597" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id506599" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">functionN&amp; <fo:wrapper id="id243506-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&amp; f);</fo:block></fo:block><fo:list-block id="id506634" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id506637" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">*this</fo:inline> targets a copy of <fo:inline font-family="monospace">f</fo:inline>'s target, if it has one, or is empty if <fo:inline font-family="monospace">f.<fo:basic-link internal-destination="id363748-bb">empty</fo:basic-link>()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506672" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw when the target of <fo:inline font-family="monospace">f</fo:inline> is a stateless function object or a reference to the function object.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506687" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id506690" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id433349-bb"/>~functionN();</fo:block></fo:block><fo:list-block id="id506703" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id506706" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If <fo:inline font-family="monospace">!this-&gt;<fo:basic-link internal-destination="id363748-bb">empty</fo:basic-link>()</fo:inline>, destroys the target of this.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id506729"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">functionN modifiers</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id363207-bb"/><fo:inline font-family="monospace">functionN</fo:inline> modifiers</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id506743" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id506749" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id506751" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id264499-bb"/>swap(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&amp; f);</fo:block></fo:block><fo:list-block id="id506787" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id506790" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Interchanges the targets of <fo:inline font-family="monospace">*this</fo:inline> and <fo:inline font-family="monospace">f</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506811" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506819" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id506821" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id356064-bb"/>clear();</fo:block></fo:block><fo:list-block id="id506842" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id506846" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>this-&gt;<fo:basic-link internal-destination="id363748-bb">empty</fo:basic-link>()</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506862" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id506869"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">functionN capacity</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id218197-bb"/><fo:inline font-family="monospace">functionN</fo:inline> capacity</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id506884" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id506890" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id506892" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id363748-bb"/>empty() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id506919" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id506923" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">false</fo:inline> if <fo:inline font-family="monospace">this</fo:inline> has a target, and <fo:inline font-family="monospace">true</fo:inline> otherwise.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506949" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id506957" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id506960" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id405855-bb"/><fo:inline font-weight="bold">operator</fo:inline> safe_bool() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id506984" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id506988" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A <fo:inline font-family="monospace">safe_bool</fo:inline> that evaluates <fo:inline font-family="monospace">false</fo:inline> in a boolean context when <fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id363748-bb">empty</fo:basic-link>()</fo:inline>, and <fo:inline font-family="monospace">true</fo:inline> otherwise.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id507030" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id507038" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id507040" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id235240-bb"/><fo:inline font-weight="bold">operator</fo:inline>!() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id507072" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id507076" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id363748-bb">empty</fo:basic-link>()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id507095" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id507103"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">functionN target access</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id311150-bb"/><fo:inline font-family="monospace">functionN</fo:inline> target access</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id507117" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id507124" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id245934-bb"><fo:block id="id507131" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; Functor* <fo:wrapper id="id307750-bb"/>target();
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; <fo:inline font-weight="bold">const</fo:inline> Functor* <fo:wrapper id="id308769-bb"/>target() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id507197" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id507201" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If <fo:inline font-family="monospace">this</fo:inline> stores a target of type
        <fo:inline font-family="monospace">Functor</fo:inline>, returns the address of the
        target. Otherwise, returns the NULL
        pointer.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id507223" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id507231" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id507234" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; <fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id355447-bb"/>contains(<fo:inline font-weight="bold">const</fo:inline> Functor&amp; f) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id507281" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id507284" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">true</fo:inline> if <fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id245934-bb">target</fo:basic-link>&lt;Functor&gt;()</fo:inline> is non-NULL and <fo:inline font-family="monospace"><fo:basic-link internal-destination="function_equal">function_equal</fo:basic-link>(*(this-&gt;target&lt;Functor&gt;()), f)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id507326"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">functionN invocation</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id399301-bb"/><fo:inline font-family="monospace">functionN</fo:inline> invocation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id507341" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id507347" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id507350" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">result_type <fo:wrapper id="id316822-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(arg1_type a1, arg2_type a2, ... , argN_type aN) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id507379" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id507383" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">f(a1, a2, ..., aN)</fo:inline>, where <fo:inline font-family="monospace">f</fo:inline> is the target of <fo:inline font-family="monospace">*this</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id507409" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if <fo:inline font-family="monospace">R</fo:inline> is <fo:inline font-family="monospace">void</fo:inline>, nothing is returned; otherwise, the return value of the call to <fo:inline font-family="monospace">f</fo:inline> is returned.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id507437" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace"><fo:basic-link internal-destination="bad_function_call">bad_function_call</fo:basic-link></fo:inline> if <fo:inline font-family="monospace">!this-&gt;<fo:basic-link internal-destination="id363748-bb">empty</fo:basic-link>()</fo:inline>. Otherwise, may through any exception thrown by the target function <fo:inline font-family="monospace">f</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id507477"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">functionN specialized algorithms</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id253632-bb"/><fo:inline font-family="monospace">functionN</fo:inline> specialized algorithms</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id507491" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id507497" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id507500" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id243473"/>swap(<fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f2);</fo:block></fo:block><fo:list-block id="id507573" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id507577" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">f1.<fo:basic-link internal-destination="id264499-bb">swap</fo:basic-link>(f2)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id507596" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id507604"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">functionN comparison operators</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id443814-bb"/><fo:inline font-family="monospace">functionN</fo:inline> comparison operators</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id507618" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id507625" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id364475"><fo:block id="id507631" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id367263-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f, Functor g);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id304156-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(Functor g, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id307683-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt; g);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id418996-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt; g, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> U1, <fo:inline font-weight="bold">typename</fo:inline> U2, ..., <fo:inline font-weight="bold">typename</fo:inline> UN, <fo:inline font-weight="bold">typename</fo:inline> Allocator2&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id340873-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator1&gt;&amp; f1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;U1, U2, ..., UN, Allocator2&gt;&amp; f2);</fo:block></fo:block><fo:list-block id="id508071" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id508074" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>True when <fo:inline font-family="monospace">f</fo:inline> stores an object of
        type <fo:inline font-family="monospace">Functor</fo:inline> and one of the following conditions applies:
          <fo:list-block id="id508096" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id508098" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">g</fo:inline> is of type
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;</fo:inline>
            and <fo:inline font-family="monospace">f.target&lt;Functor&gt;() == g.<fo:basic-link internal-destination="id231874-bb">get_pointer</fo:basic-link>()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id508138" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">g</fo:inline> is not of type
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;</fo:inline>
            and
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="function_equal">function_equal</fo:basic-link>(*(f.target&lt;Functor&gt;()),
            g)</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id508176" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace"><fo:basic-link internal-destination="functionN">functionN</fo:basic-link></fo:inline>
        objects are not
        <fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id508202" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The <fo:inline font-family="monospace">safe_bool</fo:inline> conversion
        opens a loophole whereby two <fo:inline font-family="monospace">functionN</fo:inline>
        instances can be compared via <fo:inline font-family="monospace">==</fo:inline>, although this
        is not feasible to implement. The undefined <fo:inline font-family="monospace">void
        operator==</fo:inline> closes the loophole and ensures a
        compile-time or link-time error.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id508240" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id370415"><fo:block id="id508247" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id273475-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f, Functor g);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id345580-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(Functor g, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id393309-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt; g);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id403770-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt; g, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator&gt;&amp; f);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, <fo:inline font-weight="bold">typename</fo:inline> Allocator1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> U1, <fo:inline font-weight="bold">typename</fo:inline> U2, ..., <fo:inline font-weight="bold">typename</fo:inline> UN, <fo:inline font-weight="bold">typename</fo:inline> Allocator2&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id372280-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;T1, T2, ..., TN, Allocator1&gt;&amp; f1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;U1, U2, ..., UN, Allocator2&gt;&amp; f2);</fo:block></fo:block><fo:list-block id="id508685" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id508689" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>True when <fo:inline font-family="monospace">f</fo:inline> does not store an
        object of type <fo:inline font-family="monospace">Functor</fo:inline> or it stores an object of
        type <fo:inline font-family="monospace">Functor</fo:inline> and one of the following conditions
        applies:
          <fo:list-block id="id508719" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id508720" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">g</fo:inline> is of type
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;</fo:inline>
            and <fo:inline font-family="monospace">f.target&lt;Functor&gt;() != g.<fo:basic-link internal-destination="id231874-bb">get_pointer</fo:basic-link>()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id508758" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">g</fo:inline> is not of type
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;</fo:inline>
            and <fo:inline font-family="monospace">!<fo:basic-link internal-destination="function_equal">function_equal</fo:basic-link>(*(f.target&lt;Functor&gt;()), g)</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id508796" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace"><fo:basic-link internal-destination="functionN">functionN</fo:basic-link></fo:inline>
        objects are not
        <fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id508823" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The <fo:inline font-family="monospace">safe_bool</fo:inline> conversion
        opens a loophole whereby two <fo:inline font-family="monospace">functionN</fo:inline>
        instances can be compared via <fo:inline font-family="monospace">!=</fo:inline>, although this
        is not feasible to implement. The undefined <fo:inline font-family="monospace">void
        operator!=</fo:inline> closes the loophole and ensures a
        compile-time or link-time error.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boost.function"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template function</fo:block></fo:block><fo:block space-after="1em">Class template function <fo:inline font-family="serif">--</fo:inline> A generalized function pointer that can be used for
    callbacks or wrapping function objects.</fo:block><fo:block>boost::function</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id508881"><fo:block/><fo:block id="id508883" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-style="italic">  // Function type R (T1, T2, ..., TN)</fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Allocator = std::allocator&lt;<fo:inline font-weight="bold">void</fo:inline>&gt; &gt; 
<fo:inline font-weight="bold">class</fo:inline> function : <fo:inline font-weight="bold">public</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;R, T1, T2, ..., TN, Allocator&gt; {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> R&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; result_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> Allocator allocator_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T1&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; argument_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// If N == 1</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T1&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; first_argument_type;&#xA0;  <fo:inline font-style="italic">// If N == 2</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T2&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; second_argument_type;  <fo:inline font-style="italic">// If N == 2</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T1&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; arg1_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T2&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; arg2_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;.
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;.
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;.
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> TN&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; argN_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// static constants</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">static</fo:inline> <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> arity = N;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="lambda">Lambda</fo:basic-link> library support</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Args&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> sig {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> result_type type;
&#xA0;&#xA0;};

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="boost.functionconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id318295-bb">function</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id235217-bb">function</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id370932-bb">function</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> F&gt; <fo:basic-link internal-destination="id243601-bb">function</fo:basic-link>(F);
&#xA0;&#xA0;function&amp; <fo:basic-link internal-destination="id439716-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&amp;);
&#xA0;&#xA0;function&amp; <fo:basic-link internal-destination="id429940-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id262990-bb">~function</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id273706-bb">modifiers</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id270465-bb">swap</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id377153-bb">clear</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id401776-bb">capacity</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:basic-link internal-destination="id392406-bb"><fo:inline font-weight="bold">operator</fo:inline> safe_bool</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id323901-bb"><fo:inline font-weight="bold">operator</fo:inline>!</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id407989-bb">target access</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; Functor* <fo:basic-link internal-destination="id252399-bb">target</fo:basic-link>();
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; <fo:inline font-weight="bold">const</fo:inline> Functor* <fo:basic-link internal-destination="id447916-bb">target</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; <fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id323481-bb">contains</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Functor&amp;) <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id355827-bb">invocation</fo:basic-link></fo:inline>
&#xA0;&#xA0;result_type <fo:basic-link internal-destination="id308652-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(arg1_type, arg2_type, ..., argN_type) <fo:inline font-weight="bold">const</fo:inline>;
};

<fo:inline font-style="italic">// <fo:basic-link internal-destination="id372143-bb">specialized algorithms</fo:basic-link></fo:inline>
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id354066">swap</fo:basic-link>(<fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;, <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;);

<fo:inline font-style="italic">// <fo:basic-link internal-destination="id284910-bb">comparison operators</fo:basic-link></fo:inline>
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id235870-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;, Functor);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id318513-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(Functor, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id262984-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id349308-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature1, <fo:inline font-weight="bold">typename</fo:inline> Allocator1, <fo:inline font-weight="bold">typename</fo:inline> Signature2, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Allocator2&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id242840-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature1, Allocator1&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature2, Allocator2&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id256291-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;, Functor);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id428210-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(Functor, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id425558-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id409074-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp;);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature1, <fo:inline font-weight="bold">typename</fo:inline> Allocator1, <fo:inline font-weight="bold">typename</fo:inline> Signature2, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Allocator2&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id316198-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature1, Allocator1&gt;&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature2, Allocator2&gt;&amp;);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id510352"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class template <fo:basic-link internal-destination="boost.function">function</fo:basic-link> is a thin
      wrapper around the numbered class templates <fo:basic-link internal-destination="functionN">function0</fo:basic-link>, <fo:basic-link internal-destination="functionN">function1</fo:basic-link>, etc. It accepts a
      function type with N arguments and will will derive from
      <fo:basic-link internal-destination="functionN">functionN</fo:basic-link> instantiated with the arguments
      it receives.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The semantics of all operations in class template
      <fo:basic-link internal-destination="boost.function">function</fo:basic-link> are equivalent to that of the
      underlying <fo:basic-link internal-destination="functionN">functionN</fo:basic-link> object, although
      additional member functions are required to allow proper copy
      construction and copy assignment of function objects.</fo:block><fo:block id="id510418"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">function construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="boost.functionconstruct-copy-destruct"/><fo:inline font-family="monospace">function</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id510435" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id510441" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id510443" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id318295-bb"/>function();</fo:block></fo:block><fo:list-block id="id510456" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id510460" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id510480" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id510487" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id510489" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id235217-bb"/>function(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&amp; f);</fo:block></fo:block><fo:list-block id="id510517" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id510520" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Contains a copy of the <fo:inline font-family="monospace">f</fo:inline>'s target, if it has one, or is empty if <fo:inline font-family="monospace">f.<fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id510550" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw unless copying the target of <fo:inline font-family="monospace">f</fo:inline> throws.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id510564" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id510566" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id370932-bb"/>function(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&amp; f);</fo:block></fo:block><fo:list-block id="id510594" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id510598" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Contains a copy of the <fo:inline font-family="monospace">f</fo:inline>'s target, if it has one, or is empty if <fo:inline font-family="monospace">f.<fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id510627" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw unless copying the target of <fo:inline font-family="monospace">f</fo:inline> throws.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id510642" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id510644" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> F&gt; <fo:wrapper id="id243601-bb"/>function(F f);</fo:block></fo:block><fo:list-block id="id510670" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id510674" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>F is a function object Callable from <fo:inline font-family="monospace">this</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id510688" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">*this</fo:inline> targets a copy of <fo:inline font-family="monospace">f</fo:inline> if <fo:inline font-family="monospace">f</fo:inline> is nonempty, or <fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>()</fo:inline> if <fo:inline font-family="monospace">f</fo:inline> is empty.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id510735" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw when <fo:inline font-family="monospace">f</fo:inline> is a stateless function object.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id510749" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id510752" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">function&amp; <fo:wrapper id="id439716-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&amp; f);</fo:block></fo:block><fo:list-block id="id510786" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id510790" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">*this</fo:inline> targets a copy of <fo:inline font-family="monospace">f</fo:inline>'s target, if it has one, or is empty if <fo:inline font-family="monospace">f.<fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id510823" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw when the target of <fo:inline font-family="monospace">f</fo:inline> is a stateless function object or a reference to the function object.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id510839" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id510841" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">function&amp; <fo:wrapper id="id429940-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&amp; f);</fo:block></fo:block><fo:list-block id="id510875" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id510878" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">*this</fo:inline> targets a copy of <fo:inline font-family="monospace">f</fo:inline>'s target, if it has one, or is empty if <fo:inline font-family="monospace">f.<fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id510911" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw when the target of <fo:inline font-family="monospace">f</fo:inline> is a stateless function object or a reference to the function object.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id510927" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id510929" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id262990-bb"/>~function();</fo:block></fo:block><fo:list-block id="id510942" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id510946" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If <fo:inline font-family="monospace">!this-&gt;<fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>()</fo:inline>, destroys the target of <fo:inline font-family="monospace">this</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id510975"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">function modifiers</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id273706-bb"/><fo:inline font-family="monospace">function</fo:inline> modifiers</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id510989" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id510995" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id510997" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id270465-bb"/>swap(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&amp; f);</fo:block></fo:block><fo:list-block id="id511032" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id511036" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Interchanges the targets of <fo:inline font-family="monospace">*this</fo:inline> and <fo:inline font-family="monospace">f</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id511056" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id511064" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id511067" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id377153-bb"/>clear();</fo:block></fo:block><fo:list-block id="id511087" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id511091" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id511110" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id511118"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">function capacity</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id401776-bb"/><fo:inline font-family="monospace">function</fo:inline> capacity</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id511132" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id511138" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id511141" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id393241-bb"/>empty() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id511168" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id511172" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">false</fo:inline> if <fo:inline font-family="monospace">this</fo:inline> has a target, and <fo:inline font-family="monospace">true</fo:inline> otherwise.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id511198" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id511206" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id511208" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id392406-bb"/><fo:inline font-weight="bold">operator</fo:inline> safe_bool() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id511232" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id511236" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A <fo:inline font-family="monospace">safe_bool</fo:inline> that evaluates <fo:inline font-family="monospace">false</fo:inline> in a boolean context when <fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>()</fo:inline>, and <fo:inline font-family="monospace">true</fo:inline> otherwise.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id511278" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id511286" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id511289" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id323901-bb"/><fo:inline font-weight="bold">operator</fo:inline>!() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id511321" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id511325" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id511344" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id511352"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">function target access</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id407989-bb"/><fo:inline font-family="monospace">function</fo:inline> target access</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id511366" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id511372" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id324276-bb"><fo:block id="id511379" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; Functor* <fo:wrapper id="id252399-bb"/>target();
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; <fo:inline font-weight="bold">const</fo:inline> Functor* <fo:wrapper id="id447916-bb"/>target() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id511445" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id511449" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If <fo:inline font-family="monospace">this</fo:inline> stores a target of type
        <fo:inline font-family="monospace">Functor</fo:inline>, returns the address of the
        target. Otherwise, returns the NULL
        pointer.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id511471" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id511479" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id511482" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Functor&gt; <fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id323481-bb"/>contains(<fo:inline font-weight="bold">const</fo:inline> Functor&amp; f) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id511529" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id511533" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">true</fo:inline> if <fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id324276-bb">target</fo:basic-link>&lt;Functor&gt;()</fo:inline> is non-NULL and <fo:inline font-family="monospace"><fo:basic-link internal-destination="function_equal">function_equal</fo:basic-link>(*(this-&gt;target&lt;Functor&gt;()), f)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id511575"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">function invocation</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id355827-bb"/><fo:inline font-family="monospace">function</fo:inline> invocation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id511589" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id511595" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id511598" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">result_type <fo:wrapper id="id308652-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(arg1_type a1, arg2_type a2, ... , argN_type aN) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id511627" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id511631" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">f(a1, a2, ..., aN)</fo:inline>, where <fo:inline font-family="monospace">f</fo:inline> is the target of <fo:inline font-family="monospace">*this</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id511657" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if <fo:inline font-family="monospace">R</fo:inline> is <fo:inline font-family="monospace">void</fo:inline>, nothing is returned; otherwise, the return value of the call to <fo:inline font-family="monospace">f</fo:inline> is returned.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id511685" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace"><fo:basic-link internal-destination="bad_function_call">bad_function_call</fo:basic-link></fo:inline> if <fo:inline font-family="monospace">!this-&gt;<fo:basic-link internal-destination="id393241-bb">empty</fo:basic-link>()</fo:inline>. Otherwise, may through any exception thrown by the target function <fo:inline font-family="monospace">f</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id511725"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">function specialized algorithms</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id372143-bb"/><fo:inline font-family="monospace">function</fo:inline> specialized algorithms</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id511740" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id511746" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id511748" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id354066"/>swap(<fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp; f1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp; f2);</fo:block></fo:block><fo:list-block id="id511807" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id511811" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">f1.<fo:basic-link internal-destination="id270465-bb">swap</fo:basic-link>(f2)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id511830" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id511838"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">function comparison operators</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id284910-bb"/><fo:inline font-family="monospace">function</fo:inline> comparison operators</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id511852" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id511858" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id346448"><fo:block id="id511866" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id235870-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp; f, Functor g);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id318513-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(Functor g, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp; f);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id262984-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp; f, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt; g);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id349308-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt; g, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp; f);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature1, <fo:inline font-weight="bold">typename</fo:inline> Allocator1, <fo:inline font-weight="bold">typename</fo:inline> Signature2, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Allocator2&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id242840-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature1, Allocator1&gt;&amp; f1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature2, Allocator2&gt;&amp; f2);</fo:block></fo:block><fo:list-block id="id512222" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id512226" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>True when <fo:inline font-family="monospace">f</fo:inline> stores an object of
        type <fo:inline font-family="monospace">Functor</fo:inline> and one of the following conditions applies:
          <fo:list-block id="id512248" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id512249" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">g</fo:inline> is of type
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;</fo:inline>
            and <fo:inline font-family="monospace">f.target&lt;Functor&gt;() == g.<fo:basic-link internal-destination="id231874-bb">get_pointer</fo:basic-link>()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id512287" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">g</fo:inline> is not of type
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;</fo:inline>
            and <fo:inline font-family="monospace">function_equals(*(f.target&lt;Functor&gt;()), g)</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id512318" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.function">function</fo:basic-link></fo:inline>
        objects are not
        <fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id512344" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The <fo:inline font-family="monospace">safe_bool</fo:inline> conversion
        opens a loophole whereby two <fo:inline font-family="monospace">function</fo:inline>
        instances can be compared via <fo:inline font-family="monospace">==</fo:inline>, although this
        is not feasible to implement. The undefined <fo:inline font-family="monospace">void
        operator==</fo:inline> closes the loophole and ensures a
        compile-time or link-time error.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id512382" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id370730"><fo:block id="id512389" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id256291-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp; f, Functor g);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id428210-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(Functor g, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp; f);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id425558-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp; f, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt; g);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Allocator, <fo:inline font-weight="bold">typename</fo:inline> Functor&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id409074-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt; g, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature, Allocator&gt;&amp; f);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature1, <fo:inline font-weight="bold">typename</fo:inline> Allocator1, <fo:inline font-weight="bold">typename</fo:inline> Signature2, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Allocator2&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id316198-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature1, Allocator1&gt;&amp; f1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.function">function</fo:basic-link>&lt;Signature2, Allocator2&gt;&amp; f2);</fo:block></fo:block><fo:list-block id="id512745" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id512749" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>True when <fo:inline font-family="monospace">f</fo:inline> does not store an
        object of type <fo:inline font-family="monospace">Functor</fo:inline> or it stores an object of
        type <fo:inline font-family="monospace">Functor</fo:inline> and one of the following conditions
        applies:
          <fo:list-block id="id512778" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id512780" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">g</fo:inline> is of type
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;</fo:inline>
            and <fo:inline font-family="monospace">f.target&lt;Functor&gt;() != g.<fo:basic-link internal-destination="id231874-bb">get_pointer</fo:basic-link>()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id512818" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">g</fo:inline> is not of type
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;Functor&gt;</fo:inline>
            and <fo:inline font-family="monospace">!function_equals(*(f.target&lt;Functor&gt;()), g)</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id512848" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.function">function</fo:basic-link></fo:inline>
        objects are not
        <fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id512875" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The <fo:inline font-family="monospace">safe_bool</fo:inline> conversion
        opens a loophole whereby two <fo:inline font-family="monospace">function</fo:inline>
        instances can be compared via <fo:inline font-family="monospace">!=</fo:inline>, although this
        is not feasible to implement. The undefined <fo:inline font-family="monospace">void
        operator!=</fo:inline> closes the loophole and ensures a
        compile-time or link-time error.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id330862"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/function_equal.hpp">boost/function_equal.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id512929" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> F, <fo:inline font-weight="bold">typename</fo:inline> G&gt; <fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="function_equal">function_equal</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> F&amp;, <fo:inline font-weight="bold">const</fo:inline> G&amp;);
}</fo:block><fo:block break-before="page"><fo:block id="function_equal"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template function_equal</fo:block></fo:block><fo:block space-after="1em">Function template function_equal <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Compare two function objects for equality.</fo:block></fo:block><fo:block>boost::function_equal</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id513009"><fo:block/><fo:block id="id513010" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> F, <fo:inline font-weight="bold">typename</fo:inline> G&gt; <fo:inline font-weight="bold">bool</fo:inline> function_equal(<fo:inline font-weight="bold">const</fo:inline> F&amp; f, <fo:inline font-weight="bold">const</fo:inline> G&amp; g);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id513056"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id513060" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id513063" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">f == g</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id513076" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Only if <fo:inline font-family="monospace">f == g</fo:inline> throws.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="function.faq"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Frequently Asked Questions</fo:marker><fo:block font-size="17.28pt">Frequently Asked Questions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id513104"><fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2.5em"><fo:list-item id="id513106" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Why can't I compare
    <fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link> objects with
    <fo:inline font-family="monospace">operator==</fo:inline> or
    <fo:inline font-family="monospace">operator!=</fo:inline>?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Comparison between <fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link>
      objects cannot be implemented "well", and therefore will not be
      implemented. The typical semantics requested for <fo:inline font-family="monospace">f ==
      g</fo:inline> given <fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link> objects
      <fo:inline font-family="monospace">f</fo:inline> and <fo:inline font-family="monospace">g</fo:inline> are:</fo:block><fo:list-block id="id513174" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id513175" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If <fo:inline font-family="monospace">f</fo:inline> and <fo:inline font-family="monospace">g</fo:inline>
          store function objects of the same type, use that type's
          <fo:inline font-family="monospace">operator==</fo:inline> to compare
          them.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id513200" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If <fo:inline font-family="monospace">f</fo:inline> and <fo:inline font-family="monospace">g</fo:inline>
          store function objects of different types, return
          <fo:inline font-family="monospace">false</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The problem occurs when the type of the function objects
      stored by both <fo:inline font-family="monospace">f</fo:inline> and <fo:inline font-family="monospace">g</fo:inline> doesn't have an
      <fo:inline font-family="monospace">operator==</fo:inline>: we would like the expression <fo:inline font-family="monospace">f ==
      g</fo:inline> to fail to compile, as occurs with, e.g., the standard
      containers. However, this is not implementable for
      <fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link> because it necessarily
      "erases" some type information after it has been assigned a
      function object, so it cannot try to call
      <fo:inline font-family="monospace">operator==</fo:inline> later: it must either find a way to call
      <fo:inline font-family="monospace">operator==</fo:inline> now, or it will never be able to call it
      later. Note, for instance, what happens if you try to put a
      <fo:inline font-family="monospace">float</fo:inline> value into a
      <fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link> object: you will get an
      error at the assignment operator or constructor, not in
      <fo:inline font-family="monospace">operator()</fo:inline>, because the function-call expression
      must be bound in the constructor or assignment operator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The most promising approach is to find a method of
      determining if <fo:inline font-family="monospace">operator==</fo:inline> can be called for a
      particular type, and then supporting it only when it is
      available; in other situations, an exception would be
      thrown. However, to date there is no known way to detect if an
      arbitrary operator expression <fo:inline font-family="monospace">f == g</fo:inline> is suitably
      defined. The best solution known has the following undesirable
      qualities:</fo:block><fo:list-block id="id513329" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id513335" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Fails at compile-time for objects where
        <fo:inline font-family="monospace">operator==</fo:inline> is not accessible (e.g., because it is
        <fo:inline font-family="monospace">private</fo:inline>).</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id513354" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Fails at compile-time if calling
        <fo:inline font-family="monospace">operator==</fo:inline> is ambiguous.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id513365" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Appears to be correct if the
        <fo:inline font-family="monospace">operator==</fo:inline> declaration is correct, even though
        <fo:inline font-family="monospace">operator==</fo:inline> may not compile.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">All of these problems translate into failures in the
      <fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link> constructors or
      assignment operator, <fo:inline font-style="italic">even if the user never invokes
      operator==</fo:inline>. We can't do that to users.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The other option is to place the burden on users that want
      to use <fo:inline font-family="monospace">operator==</fo:inline>, e.g., by providing an
      <fo:inline font-family="monospace">is_equality_comparable</fo:inline> trait they may
      specialize. This is a workable solution, but is dangerous in
      practice, because forgetting to specialize the trait will result
      in unexpected exceptions being thrown from
      <fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link>'s
      <fo:inline font-family="monospace">operator==</fo:inline>. This essentially negates the usefulness
      of <fo:inline font-family="monospace">operator==</fo:inline> in the context in which it is most
      desired: multitarget callbacks. The
      <fo:basic-link internal-destination="signals">Signals</fo:basic-link> library has a way around
      this.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id513455" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">I see void pointers; is this [mess] type safe?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Yes, <fo:inline font-family="monospace">boost::function</fo:inline> is type
safe even though it uses void pointers and pointers to functions
returning void and taking no arguments. Essentially, all type
information is encoded in the functions that manage and invoke
function pointers and function objects. Only these functions are
instantiated with the exact type that is pointed to by the void
pointer or pointer to void function. The reason that both are required
is that one may cast between void pointers and object pointers safely
or between different types of function pointers (provided you don't
invoke a function pointer with the wrong type).  </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id513481" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Why are there workarounds for void returns? C++ allows them!</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Void returns are permitted by the C++ standard, as in this code snippet:
<fo:block id="id513492" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">void f();
void g() { return f(); }</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> This is a valid usage of <fo:inline font-family="monospace">boost::function</fo:inline> because void returns are not used. With void returns, we would attempting to compile ill-formed code similar to:
<fo:block id="id513509" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">int f();
void g() { return f(); }</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> In essence, not using void returns allows
<fo:inline font-family="monospace">boost::function</fo:inline> to swallow a return value. This is
consistent with allowing the user to assign and invoke functions and
function objects with parameters that don't exactly match.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id513527" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Why (function) cloning?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In November and December of 2000, the issue of cloning
      vs. reference counting was debated at length and it was decided
      that cloning gave more predictable semantics. I won't rehash the
      discussion here, but if it cloning is incorrect for a particular
      application a reference-counting allocator could be used.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id513542" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">How much overhead does a call through <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link></fo:inline> incur?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The cost of <fo:inline font-family="monospace">boost::function</fo:inline> can be reasonably
      consistently measured at around 20ns +/- 10 ns on a modern &gt;2GHz
      platform versus directly inlining the code.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">However, the performance of your application may benefit
      from or be disadvantaged by <fo:inline font-family="monospace">boost::function</fo:inline>
      depending on how your C++ optimiser optimises.  Similar to a
      standard function pointer, differences of order of 10% have been
      noted to the benefit or disadvantage of using
      <fo:inline font-family="monospace">boost::function</fo:inline> to call a function that contains a
      tight loop depending on your compilation circumstances.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">[Answer provided by Matt Hurd. See <fo:basic-link external-destination="http://article.gmane.org/gmane.comp.lib.boost.devel/33278">http://article.gmane.org/gmane.comp.lib.boost.devel/33278</fo:basic-link>]</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="function.misc"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Miscellaneous Notes</fo:marker><fo:block font-size="17.28pt">Miscellaneous Notes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id513618"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Boost.Function vs. Function Pointers</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Boost.Function has several advantages over function pointers, namely:

<fo:list-block id="id513626" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id513630" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Boost.Function allows arbitrary compatible function objects to be targets (instead of requiring an exact function signature).</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id513636" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Boost.Function may be used with argument-binding and other function object construction libraries.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id513641" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Boost.Function has predictible behavior when an empty function object is called. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> And, of course, function pointers have several advantages over Boost.Function:

<fo:list-block id="id513650" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id513654" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> Function pointers are smaller (the size of one pointer instead of three) </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id513659" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> Function pointers are faster (Boost.Function may require two calls through function pointers) </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id513664" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> Function pointers are backward-compatible with C libraries.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id513669" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> More readable error messages. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="id513673"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Performance</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id513677"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Function object wrapper size</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Function object wrappers will be the size of two function pointers plus one function pointer or data pointer (whichever is larger). On common 32-bit platforms, this amounts to 12 bytes per wrapper. Additionally, the function object target will be allocated on the heap.</fo:block></fo:block><fo:block id="id513688"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Copying efficiency</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Copying function object wrappers may require allocating memory for a copy of the function object target. The default allocator may be replaced with a faster custom allocator or one may choose to allow the function object wrappers to only store function object targets by reference (using <fo:inline font-family="monospace">ref</fo:inline>) if the cost of this cloning becomes prohibitive.</fo:block></fo:block><fo:block id="id513707"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Invocation efficiency</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> With a properly inlining compiler, an invocation of a function object requires one call through a function pointer. If the call is to a free function pointer, an additional call must be made to that function pointer (unless the compiler has very powerful interprocedural analysis).</fo:block></fo:block></fo:block><fo:block id="id513718"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Combatting virtual function "bloat"</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The use of virtual functions tends to cause 'code bloat' on many compilers. When a class contains a virtual function, it is necessary to emit an additional function that classifies the type of the object. It has been our experience that these auxiliary functions increase the size of the executable significantly when many <fo:inline font-family="monospace">boost::function</fo:inline> objects are used. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> In Boost.Function, an alternative but equivalent approach was taken using free functions instead of virtual functions. The Boost.Function object essentially holds two pointers to make a valid target call: a void pointer to the function object it contains and a void pointer to an "invoker" that can call the function object, given the function pointer. This invoker function performs the argument and return value conversions Boost.Function provides. A third pointer points to a free function called the "manager", which handles the cloning and destruction of function objects. The scheme is typesafe because the only functions that actually handle the function object, the invoker and the manager, are instantiated given the type of the function object, so they can safely cast the incoming void pointer (the function object pointer) to the appropriate type.</fo:block></fo:block><fo:block id="id513755"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Acknowledgements</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Many people were involved in the construction of this
    library. William Kempf, Jesse Jones and Karl Nelson were all
    extremely helpful in isolating an interface and scope for the
    library. John Maddock managed the formal review, and many
    reviewers gave excellent comments on interface, implementation,
    and documentation. Peter Dimov led us to the function
    declarator-based syntax.</fo:block></fo:block></fo:block><fo:block id="function.testsuite"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Testsuite</fo:marker><fo:block font-size="17.28pt">Testsuite</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="function.testsuite.acceptance"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Acceptance tests</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id513787" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2" column-width="1in"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Test</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">If failing...</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/function_test.cpp">function_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the capabilities of the <fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link> class template.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link> class template may not be usable on your compiler. However, the library may still be usable via the <fo:basic-link internal-destination="functionN">boost::functionN</fo:basic-link> class templates.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/function_n_test.cpp">function_n_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the capabilities of the <fo:basic-link internal-destination="functionN">boost::functionN</fo:basic-link> class templates.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/allocator_test.cpp">allocator_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the use of custom allocators.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Allocators are ignored by the implementation.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/stateless_test.cpp">stateless_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the optimization of stateless function objects in the Boost.Function library.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The exception-safety and performance guarantees given for stateless function objects may not be met by the implementation.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/lambda_test.cpp">lambda_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the interaction between Boost.Function and Boost.Lambda.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Either Boost.Lambda does not work on the platform, or Boost.Function cannot safely be applied without the use of boost::unlambda.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/contains_test.cpp">contains_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the operation of the
    <fo:inline font-family="monospace">target</fo:inline> member function and the
    equality operators.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/function_30.cpp">function_30.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">compile</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the generation of a Boost.Function function object adaptor accepting 30 arguments.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The Boost.Function library may work for function object adaptors of up to 10 parameters, but will be unable to generate adaptors for an arbitrary number of parameters. Failure often indicates an error in the compiler's preprocessor.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/function_arith_cxx98.cpp">function_arith_cxx98.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the first tutorial example.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/function_arith_portable.cpp">function_arith_portable.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the first tutorial example.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/sum_avg_cxx98.cpp">sum_avg_cxx98.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the second tutorial example.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/sum_avg_portable.cpp">sum_avg_portable.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the second tutorial example.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/mem_fun_cxx98.cpp">mem_fun_cxx98.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test member function example from tutorial.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/mem_fun_portable.cpp">mem_fun_portable.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test member function example from tutorial.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/std_bind_cxx98.cpp">std_bind_cxx98.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test standard binders example from tutorial.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/std_bind_portable.cpp">std_bind_portable.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test standard binders example from tutorial.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/function_ref_cxx98.cpp">function_ref_cxx98.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test <fo:basic-link internal-destination="id376299">boost::ref</fo:basic-link> example from tutorial.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/function_ref_portable.cpp">function_ref_portable.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test <fo:basic-link internal-destination="id376299">boost::ref</fo:basic-link> example from tutorial.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="function.testsuite.negative"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Negative tests</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id514224" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2" column-width="1in"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Test</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">If failing...</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/function_test_fail1.cpp">function_test_fail1.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">compile-fail</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the (incorrect!) use of comparisons between Boost.Function function objects.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Intuitive (but incorrect!) code may compile and will give meaningless results.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/function/test/function_test_fail2.cpp">function_test_fail2.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">compile-fail</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the use of an incompatible function object with Boost.Function</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Incorrect code may compile (with potentially unexpected results).</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Lambda</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Lambda</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="lambda"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Boost.Lambda</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Jaakko J&#xE4;rvi <fo:inline font-family="monospace"><fo:inline keep-together.within-line="always" hyphenate="false">&lt;jarvi at cs tamu edu&gt;</fo:inline></fo:inline></fo:block></fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 1999-2004 Jaakko J&#xE4;rviGary Powell</fo:block><fo:block><fo:block id="id514340"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use, modification and distribution is subject to the Boost
    Software License, Version 1.0. (See accompanying file
    <fo:inline font-family="monospace">LICENSE_1_0.txt</fo:inline> or copy at <fo:basic-link external-destination="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</fo:basic-link>)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="introduction"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">In a nutshell</fo:marker><fo:block font-size="17.28pt">In a nutshell</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">

      The Boost Lambda Library (BLL in the sequel) is a C++ template
      library, which implements form of <fo:inline font-style="italic">lambda abstractions</fo:inline> for C++.
The term originates from functional programming and lambda calculus, where a lambda abstraction defines an unnamed function.
      The primary motivation for the BLL is to provide flexible and
      convenient means to define unnamed function objects for STL algorithms.
In explaining what the library is about, a line of code says more than a thousand words; the
      following line outputs the elements of some STL container
      <fo:inline font-family="monospace">a</fo:inline> separated by spaces:

      <fo:block id="id514392" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">for_each(a.begin(), a.end(), std::cout &lt;&lt; _1 &lt;&lt; ' ');</fo:block>

      The expression <fo:inline font-family="monospace">std::cout &lt;&lt; _1 &lt;&lt; ' '</fo:inline> defines a unary function object. 
      The variable <fo:inline font-family="monospace">_1</fo:inline> is the parameter of this function, a <fo:inline font-style="italic">placeholder</fo:inline> for the actual argument. 
      Within each iteration of <fo:inline font-family="monospace">for_each</fo:inline>, the function is
      called with an element of <fo:inline font-family="monospace">a</fo:inline> as the actual argument.
      This actual argument is substituted for the placeholder, and the &#x201C;body&#x201D; of the function is evaluated.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The essence of BLL is letting you define small unnamed function objects, such as the one above, directly on the call site of an STL algorithm.
    </fo:block></fo:block><fo:block id="lambda.getting_started"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Getting Started</fo:marker><fo:block font-size="17.28pt">Getting Started</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id514454"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Installing the library</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	The library consists of include files only, hence there is no
	installation procedure. The <fo:inline font-family="monospace">boost</fo:inline> include directory
	must be on the include path.
	There are a number of include files that give different functionality:

	<fo:list-block id="id514471" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id514472" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">lambda/lambda.hpp</fo:inline> defines lambda expressions for different C++
	      operators, see <fo:basic-link internal-destination="lambda.operator_expressions">the section called &#x201C;Operator expressions&#x201D;</fo:basic-link>.
	    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id514492" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">lambda/bind.hpp</fo:inline> defines <fo:inline font-family="monospace">bind</fo:inline> functions for up to 9 arguments, see <fo:basic-link internal-destination="lambda.bind_expressions">the section called &#x201C;Bind expressions&#x201D;</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id514517" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">lambda/if.hpp</fo:inline> defines lambda function equivalents for if statements and the conditional operator, see <fo:basic-link internal-destination="lambda.lambda_expressions_for_control_structures">the section called &#x201C;Lambda expressions for control structures&#x201D;</fo:basic-link> (includes <fo:inline font-family="monospace">lambda.hpp</fo:inline>).
	    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id514545" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">lambda/loops.hpp</fo:inline> defines lambda function equivalent for looping constructs, see <fo:basic-link internal-destination="lambda.lambda_expressions_for_control_structures">the section called &#x201C;Lambda expressions for control structures&#x201D;</fo:basic-link>.
	    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id514563" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">lambda/switch.hpp</fo:inline> defines lambda function equivalent for the switch statement, see <fo:basic-link internal-destination="lambda.lambda_expressions_for_control_structures">the section called &#x201C;Lambda expressions for control structures&#x201D;</fo:basic-link>.
	    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id514582" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">lambda/construct.hpp</fo:inline> provides tools for writing lambda expressions with constructor, destructor, new and delete invocations, see <fo:basic-link internal-destination="lambda.construction_and_destruction">the section called &#x201C;Construction and destruction&#x201D;</fo:basic-link> (includes <fo:inline font-family="monospace">lambda.hpp</fo:inline>).
	    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id514610" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">lambda/casts.hpp</fo:inline> provides lambda versions of different casts, as well as <fo:inline font-family="monospace">sizeof</fo:inline> and <fo:inline font-family="monospace">typeid</fo:inline>, see <fo:basic-link internal-destination="lambda.cast_expressions">the section called &#x201C;
Cast expressions
&#x201D;</fo:basic-link>.
	    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id514642" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">lambda/exceptions.hpp</fo:inline> gives tools for throwing and catching
	      exceptions within lambda functions, <fo:basic-link internal-destination="lambda.exceptions">the section called &#x201C;Exceptions&#x201D;</fo:basic-link> (includes
	      <fo:inline font-family="monospace">lambda.hpp</fo:inline>).
	    </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id514668" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">lambda/algorithm.hpp</fo:inline> and <fo:inline font-family="monospace">lambda/numeric.hpp</fo:inline> (cf. standard <fo:inline font-family="monospace">algortihm</fo:inline> and <fo:inline font-family="monospace">numeric</fo:inline> headers) allow nested STL algorithm invocations, see <fo:basic-link internal-destination="lambda.nested_stl_algorithms">the section called &#x201C;Nesting STL algorithm invocations&#x201D;</fo:basic-link>.
	    </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>

	Any other header files in the package are for internal use.
	Additionally, the library depends on two other Boost Libraries, the
	<fo:inline font-style="italic">Tuple</fo:inline><fo:basic-link internal-destination="cit:boost::tuple">[tuple]</fo:basic-link> and the <fo:inline font-style="italic">type_traits</fo:inline><fo:basic-link internal-destination="cit:boost::type_traits">[type_traits]</fo:basic-link> libraries, and on the <fo:inline font-family="monospace">boost/ref.hpp</fo:inline> header.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	All definitions are placed in the namespace <fo:inline font-family="monospace">boost::lambda</fo:inline> and its subnamespaces.
      </fo:block></fo:block><fo:block id="id514750"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Conventions used in this document</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In most code examples, we omit the namespace prefixes for names in the <fo:inline font-family="monospace">std</fo:inline> and <fo:inline font-family="monospace">boost::lambda</fo:inline> namespaces.
Implicit using declarations
<fo:block id="id514770" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
using namespace std;
using namespace boost::lambda;
</fo:block>
are assumed to be in effect.
</fo:block></fo:block></fo:block><fo:block id="id514778"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="17.28pt">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id514782"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Motivation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The Standard Template Library (STL)
	<fo:basic-link internal-destination="cit:stepanov:94">[STL94]</fo:basic-link>, now part of the C++ Standard Library <fo:basic-link internal-destination="cit:c++:98">[C++98]</fo:basic-link>, is a generic container and algorithm library.
Typically STL algorithms operate on container elements via <fo:inline font-style="italic">function objects</fo:inline>. These function objects are passed as arguments to the algorithms.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Any C++ construct that can be called with the function call syntax
is a function object. 
The STL contains predefined function objects for some common cases (such as <fo:inline font-family="monospace">plus</fo:inline>, <fo:inline font-family="monospace">less</fo:inline> and <fo:inline font-family="monospace">not1</fo:inline>). 
As an example, one possible implementation for the standard <fo:inline font-family="monospace">plus</fo:inline> template is:

<fo:block id="id514851" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
template &lt;class T&gt; : public binary_function&lt;T, T, T&gt;
struct plus {
  T operator()(const T&amp; i, const T&amp; j) const {
    return i + j; 
  }
};
</fo:block>

The base class <fo:inline font-family="monospace">binary_function&lt;T, T, T&gt;</fo:inline> contains typedefs for the argument and return types of the function object, which are needed to make the function object <fo:inline font-style="italic">adaptable</fo:inline>.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
In addition to the basic function object classes, such as the one above,
the STL contains <fo:inline font-style="italic">binder</fo:inline> templates for creating a unary function object from an adaptable binary function object by fixing one of the arguments to a constant value.
For example, instead of having to explicitly write a function object class like:

<fo:block id="id514887" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
class plus_1 {
  int _i;
public:
  plus_1(const int&amp; i) : _i(i) {}
  int operator()(const int&amp; j) { return _i + j; }
};
</fo:block>

the equivalent functionality can be achieved with the <fo:inline font-family="monospace">plus</fo:inline> template and one of the binder templates (<fo:inline font-family="monospace">bind1st</fo:inline>).
E.g., the following two expressions create function objects with identical functionalities; 
when invoked, both return the result of adding <fo:inline font-family="monospace">1</fo:inline> to the argument of the function object:

<fo:block id="id514922" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
plus_1(1)
bind1st(plus&lt;int&gt;(), 1)
</fo:block>

The subexpression <fo:inline font-family="monospace">plus&lt;int&gt;()</fo:inline> in the latter line is a binary function object which computes the sum of two integers, and <fo:inline font-family="monospace">bind1st</fo:inline> invokes this function object partially binding the first argument to <fo:inline font-family="monospace">1</fo:inline>.
As an example of using the above function object, the following code adds <fo:inline font-family="monospace">1</fo:inline> to each element of some container <fo:inline font-family="monospace">a</fo:inline> and outputs the results into the standard output stream <fo:inline font-family="monospace">cout</fo:inline>.

<fo:block id="id514973" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
transform(a.begin(), a.end(), ostream_iterator&lt;int&gt;(cout),
          bind1st(plus&lt;int&gt;(), 1));
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
To make the binder templates more generally applicable, the STL contains <fo:inline font-style="italic">adaptors</fo:inline> for making 
pointers or references to functions, and pointers to member functions, 
adaptable.

Finally, some STL implementations contain function composition operations as
extensions to the standard <fo:basic-link internal-destination="cit:sgi:02">[SGI02]</fo:basic-link>.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
All these tools aim at one goal: to make it possible to specify 
<fo:inline font-style="italic">unnamed functions</fo:inline> in a call of an STL algorithm, 
in other words, to pass code fragments as an argument to a function. 

However, this goal is attained only partially.
The simple example above shows that the definition of unnamed functions 
with the standard tools is cumbersome.

Complex expressions involving functors, adaptors, binders and 
function composition operations tend to be difficult to comprehend.

In addition to this, there are significant restrictions in applying 
the standard tools. E.g. the standard binders allow only one argument 
of a binary function to be bound; there are no binders for 
3-ary, 4-ary etc. functions. 
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The Boost Lambda Library provides solutions for the problems described above:

<fo:list-block id="id515023" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id515024" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
Unnamed functions can be created easily with an intuitive syntax. 

The above example can be written as:

<fo:block id="id515029" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
transform(a.begin(), a.end(), ostream_iterator&lt;int&gt;(cout), 
          1 + _1);
</fo:block>

or even more intuitively:

<fo:block id="id515038" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
for_each(a.begin(), a.end(), cout &lt;&lt; (1 + _1));
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id515044" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
Most of the restrictions in argument binding are removed, 
arbitrary arguments of practically any C++ function can be bound.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id515050" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
Separate function composition operations are not needed, 
as function composition is supported implicitly.

</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="id515056"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Introduction to lambda expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	Lambda expression are common in functional programming languages. 
	Their syntax varies between languages (and between different forms of lambda calculus), but the basic form of a lambda expressions is:


<fo:block id="id515066" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lambda x<fo:inline font-size="75%" vertical-align="sub">1</fo:inline> ... x<fo:inline font-size="75%" vertical-align="sub">n</fo:inline>.e
</fo:block>

	A lambda expression defines an unnamed function and consists of:
	<fo:list-block id="id515082" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id515083" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
	      the parameters of this function: <fo:inline font-family="monospace">x<fo:inline font-size="75%" vertical-align="sub">1</fo:inline> ... x<fo:inline font-size="75%" vertical-align="sub">n</fo:inline></fo:inline>.
	      </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id515100" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>the expression e which computes the value of the function in terms of the parameters <fo:inline font-family="monospace">x<fo:inline font-size="75%" vertical-align="sub">1</fo:inline> ... x<fo:inline font-size="75%" vertical-align="sub">n</fo:inline></fo:inline>.
	    </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>

	A simple example of a lambda expression is 
<fo:block id="id515120" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lambda x y.x+y
</fo:block>
Applying the lambda function means substituting the formal parameters with the actual arguments:
<fo:block id="id515129" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
(lambda x y.x+y) 2 3 = 2 + 3 = 5 
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
In the C++ version of lambda expressions the <fo:inline font-family="monospace">lambda x<fo:inline font-size="75%" vertical-align="sub">1</fo:inline> ... x<fo:inline font-size="75%" vertical-align="sub">n</fo:inline></fo:inline> part is missing and the formal parameters have predefined names.
In the current version of the library, 
there are three such predefined formal parameters, 
called <fo:inline font-style="italic">placeholders</fo:inline>: 
<fo:inline font-family="monospace">_1</fo:inline>, <fo:inline font-family="monospace">_2</fo:inline> and <fo:inline font-family="monospace">_3</fo:inline>. 
They refer to the first, second and third argument of the function defined 
by the lambda expression.
	
For example, the C++ version of the definition
<fo:block id="id515179" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">lambda x y.x+y</fo:block>
is 
<fo:block id="id515185" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">_1 + _2</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Hence, there is no syntactic keyword for C++ lambda expressions. 
	The use of a placeholder as an operand implies that the operator invocation is a lambda expression.
	However, this is true only for operator invocations.
	Lambda expressions containing function calls, control structures, casts etc. require special syntactic constructs. 
	Most importantly, function calls need to be wrapped inside a <fo:inline font-family="monospace">bind</fo:inline> function. 

	As an example, consider the lambda expression:

	<fo:block id="id515207" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">lambda x y.foo(x,y)</fo:block>

	Rather than <fo:inline font-family="monospace">foo(_1, _2)</fo:inline>, the C++ counterpart for this expression is:

	<fo:block id="id515222" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">bind(foo, _1, _2)</fo:block>

	We refer to this type of C++ lambda expressions as <fo:inline font-style="italic">bind expressions</fo:inline>. 
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A lambda expression defines a C++ function object, hence function application syntax is like calling any other function object, for instance: <fo:inline font-family="monospace">(_1 + _2)(i, j)</fo:inline>.


      </fo:block><fo:block id="lambda.partial_function_application"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Partial function application</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
A bind expression is in effect a <fo:inline font-style="italic">partial function application</fo:inline>.
In partial function application, some of the arguments of a function are bound to fixed values. 
	  The result is another function, with possibly fewer arguments. 
	  When called with the unbound arguments, this new function invokes the original function with the merged argument list of bound and unbound arguments.
	</fo:block></fo:block><fo:block id="lambda.terminology"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Terminology</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	  A lambda expression defines a function. A C++ lambda expression concretely constructs a function object, <fo:inline font-style="italic">a functor</fo:inline>, when evaluated. We use the name <fo:inline font-style="italic">lambda functor</fo:inline> to refer to such a function object. 
	  Hence, in the terminology adopted here, the result of evaluating a lambda expression is a lambda functor.
	</fo:block></fo:block></fo:block></fo:block><fo:block id="lambda.using_library"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Using the library</fo:marker><fo:block font-size="17.28pt">Using the library</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The purpose of this section is to introduce the basic functionality of the library.
There are quite a lot of exceptions and special cases, but discussion of them is postponed until later sections.


    </fo:block><fo:block id="lambda.introductory_examples"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Introductory Examples</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	In this section we give basic examples of using BLL lambda expressions in STL algorithm invocations. 
	We start with some simple expressions and work up. 
	First, we initialize the elements of a container, say, a <fo:inline font-family="monospace">list</fo:inline>, to the value <fo:inline font-family="monospace">1</fo:inline>:


	<fo:block id="id515336" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
list&lt;int&gt; v(10);
for_each(v.begin(), v.end(), _1 = 1);</fo:block>

	The expression <fo:inline font-family="monospace">_1 = 1</fo:inline> creates a lambda functor which assigns the value <fo:inline font-family="monospace">1</fo:inline> to every element in <fo:inline font-family="monospace">v</fo:inline>.<fo:footnote><fo:inline><fo:inline font-size="75%" vertical-align="super">1</fo:inline> </fo:inline><fo:footnote-body font-family="serif,Symbol,ZapfDingbats" font-size="8pt" font-weight="normal" font-style="normal" text-align="justify" margin-left="0pc"><fo:block><fo:inline font-size="75%" vertical-align="super">1</fo:inline>
Strictly taken, the C++ standard defines <fo:inline font-family="monospace">for_each</fo:inline> as a <fo:inline font-style="italic">non-modifying sequence operation</fo:inline>, and the function object passed to <fo:inline font-family="monospace">for_each</fo:inline> should not modify its argument. 
The requirements for the arguments of <fo:inline font-family="monospace">for_each</fo:inline> are unnecessary strict, since as long as the iterators are <fo:inline font-style="italic">mutable</fo:inline>, <fo:inline font-family="monospace">for_each</fo:inline> accepts a function object that can have side-effects on their argument.
Nevertheless, it is straightforward to provide another function template with the functionality of<fo:inline font-family="monospace">std::for_each</fo:inline> but more fine-grained requirements for its arguments.
</fo:block></fo:footnote-body></fo:footnote></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	Next, we create a container of pointers and make them point to the elements in the first container <fo:inline font-family="monospace">v</fo:inline>:

	<fo:block id="id515428" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
vector&lt;int*&gt; vp(10); 
transform(v.begin(), v.end(), vp.begin(), &amp;_1);</fo:block>

The expression <fo:inline font-family="monospace">&amp;_1</fo:inline> creates a function object for getting the address of each element in <fo:inline font-family="monospace">v</fo:inline>.
The addresses get assigned to the corresponding elements in <fo:inline font-family="monospace">vp</fo:inline>.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	The next code fragment changes the values in <fo:inline font-family="monospace">v</fo:inline>. 
	For each element, the function <fo:inline font-family="monospace">foo</fo:inline> is called. 
The original value of the element is passed as an argument to <fo:inline font-family="monospace">foo</fo:inline>.
The result of <fo:inline font-family="monospace">foo</fo:inline> is assigned back to the element:


	<fo:block id="id515490" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int foo(int);
for_each(v.begin(), v.end(), _1 = bind(foo, _1));</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	The next step is to sort the elements of <fo:inline font-family="monospace">vp</fo:inline>:
	
	<fo:block id="id515506" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">sort(vp.begin(), vp.end(), *_1 &gt; *_2);</fo:block>

	In this call to <fo:inline font-family="monospace">sort</fo:inline>, we are sorting the elements by their contents in descending order. 
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	Finally, the following <fo:inline font-family="monospace">for_each</fo:inline> call outputs the sorted content of <fo:inline font-family="monospace">vp</fo:inline> separated by line breaks:

<fo:block id="id515538" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
for_each(vp.begin(), vp.end(), cout &lt;&lt; *_1 &lt;&lt; '\n');
</fo:block>

Note that a normal (non-lambda) expression as subexpression of a lambda expression is evaluated immediately.  
This may cause surprises. 
For instance, if the previous example is rewritten as
<fo:block id="id515549" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
for_each(vp.begin(), vp.end(), cout &lt;&lt; '\n' &lt;&lt; *_1);
</fo:block>
the subexpression <fo:inline font-family="monospace">cout &lt;&lt; '\n'</fo:inline> is evaluated immediately and the effect is to output a single line break, followed by the elements of <fo:inline font-family="monospace">vp</fo:inline>.
The BLL provides functions <fo:inline font-family="monospace">constant</fo:inline> and <fo:inline font-family="monospace">var</fo:inline> to turn constants and, respectively, variables into lambda expressions, and can be used to prevent the immediate evaluation of subexpressions:
<fo:block id="id515588" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
for_each(vp.begin(), vp.end(), cout &lt;&lt; constant('\n') &lt;&lt; *_1);
</fo:block>
These functions are described more thoroughly in <fo:basic-link internal-destination="lambda.delaying_constants_and_variables">the section called &#x201C;Delaying constants and variables&#x201D;</fo:basic-link></fo:block></fo:block><fo:block id="lambda.parameter_and_return_types"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Parameter and return types of lambda functors</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	During the invocation of a lambda functor, the actual arguments are substituted for the placeholders. 
	The placeholders do not dictate the type of these actual arguments.
	The basic rule is that a lambda function can be called with arguments of any types, as long as the lambda expression with substitutions performed is a valid C++ expression. 
	As an example, the expression
	<fo:inline font-family="monospace">_1 + _2</fo:inline> creates a binary lambda functor. 
	It can be called with two objects of any types <fo:inline font-family="monospace">A</fo:inline> and <fo:inline font-family="monospace">B</fo:inline> for which <fo:inline font-family="monospace">operator+(A,B)</fo:inline> is defined (and for which BLL knows the return type of the operator, see below).
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	C++ lacks a mechanism to query a type of an expression. 
	However, this precise mechanism is crucial for the implementation of C++ lambda expressions.
	Consequently, BLL includes a somewhat complex type deduction system which uses a set of traits classes for deducing the resulting type of lambda functions.
	It handles expressions where the operands are of built-in types and many of the expressions with operands of standard library types.
	Many of the user defined types are covered as well, particularly if the user defined operators obey normal conventions in defining the return types. 
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	There are, however, cases when the return type cannot be deduced. For example, suppose you have defined:

	<fo:block id="id515670" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">C operator+(A, B);</fo:block>

	The following lambda function invocation fails, since the return type cannot be deduced:

	<fo:block id="id515679" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">A a; B b; (_1 + _2)(a, b);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	There are two alternative solutions to this. 
	The first is to extend the BLL type deduction system to cover your own types (see <fo:basic-link internal-destination="lambda.extending">the section called &#x201C;Extending return type deduction system&#x201D;</fo:basic-link>). 
	The second is to use a special lambda expression (<fo:inline font-family="monospace">ret</fo:inline>) which defines the return type in place (see <fo:basic-link internal-destination="lambda.overriding_deduced_return_type">the section called &#x201C;Overriding the deduced return type&#x201D;</fo:basic-link>):

	<fo:block id="id515716" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">A a; B b; ret&lt;C&gt;(_1 + _2)(a, b);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	For bind expressions, the return type can be defined as a template argument of the bind function as well: 
	<fo:block id="id515727" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">bind&lt;int&gt;(foo, _1, _2);</fo:block></fo:block></fo:block><fo:block id="lambda.actual_arguments_to_lambda_functors"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">About actual arguments to lambda functors</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A general restriction for the actual arguments is that they cannot be non-const rvalues. 
	For example:

<fo:block id="id515748" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int i = 1; int j = 2; 
(_1 + _2)(i, j); // ok
(_1 + _2)(1, 2); // error (!)
</fo:block>

	This restriction is not as bad as it may look. 
	Since the lambda functors are most often called inside STL-algorithms, 
	the arguments originate from dereferencing iterators and the dereferencing operators seldom return rvalues.
	And for the cases where they do, there are workarounds discussed in 
<fo:basic-link internal-destination="lambda.rvalues_as_actual_arguments">the section called &#x201C;Rvalues as actual arguments to lambda functors&#x201D;</fo:basic-link>.


      </fo:block></fo:block><fo:block id="lambda.storing_bound_arguments"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Storing bound arguments in lambda functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">

By default, temporary const copies of the bound arguments are stored 
in the lambda functor.

This means that the value of a bound argument is fixed at the time of the 
creation of the lambda function and remains constant during the lifetime 
of the lambda function object.
For example:
<fo:block id="id515788" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int i = 1;
(_1 = 2, _1 + i)(i);
</fo:block>
The comma operator is overloaded to combine lambda expressions into a sequence;
the resulting unary lambda functor first assigns 2 to its argument, 
then adds the value of <fo:inline font-family="monospace">i</fo:inline> to it.
The value of the expression in the last line is 3, not 4. 
In other words, the lambda expression that is created is
<fo:inline font-family="monospace">lambda x.(x = 2, x + 1)</fo:inline> rather than
<fo:inline font-family="monospace">lambda x.(x = 2, x + i)</fo:inline>.
      
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">

As said, this is the default behavior for which there are exceptions.
The exact rules are as follows:

<fo:list-block id="id515824" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id515825" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>

The programmer can control the storing mechanism with <fo:inline font-family="monospace">ref</fo:inline> 
and <fo:inline font-family="monospace">cref</fo:inline> wrappers <fo:basic-link internal-destination="cit:boost::ref">[ref]</fo:basic-link>.

Wrapping an argument with <fo:inline font-family="monospace">ref</fo:inline>, or <fo:inline font-family="monospace">cref</fo:inline>, 
instructs the library to store the argument as a reference, 
or as a reference to const respectively.

For example, if we rewrite the previous example and wrap the variable 
<fo:inline font-family="monospace">i</fo:inline> with <fo:inline font-family="monospace">ref</fo:inline>, 
we are creating the lambda expression <fo:inline font-family="monospace">lambda x.(x = 2, x + i)</fo:inline> 
and the value of the expression in the last line will be 4:

<fo:block id="id515888" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
i = 1;
(_1 = 2, _1 + ref(i))(i);
</fo:block>

Note that <fo:inline font-family="monospace">ref</fo:inline> and <fo:inline font-family="monospace">cref</fo:inline> are different
from <fo:inline font-family="monospace">var</fo:inline> and <fo:inline font-family="monospace">constant</fo:inline>.

While the latter ones create lambda functors, the former do not. 
For example:

<fo:block id="id515922" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int i; 
var(i) = 1; // ok
ref(i) = 1; // not ok, ref(i) is not a lambda functor
</fo:block>

The functions <fo:inline font-family="monospace">ref</fo:inline> and <fo:inline font-family="monospace">cref</fo:inline> mostly 
exist for historical reasons,
and <fo:inline font-family="monospace">ref</fo:inline> can always
be replaced with <fo:inline font-family="monospace">var</fo:inline>, and <fo:inline font-family="monospace">cref</fo:inline> with
<fo:inline font-family="monospace">constant_ref</fo:inline>. 
See <fo:basic-link internal-destination="lambda.delaying_constants_and_variables">the section called &#x201C;Delaying constants and variables&#x201D;</fo:basic-link> for details.
The <fo:inline font-family="monospace">ref</fo:inline> and <fo:inline font-family="monospace">cref</fo:inline> functions are
general purpose utility functions in Boost, and hence defined directly
in the <fo:inline font-family="monospace">boost</fo:inline> namespace.

</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id515999" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
Array types cannot be copied, they are thus stored as const reference by default.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id516004" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block> 
For some expressions it makes more sense to store the arguments as references. 

For example, the obvious intention of the lambda expression 
<fo:inline font-family="monospace">i += _1</fo:inline> is that calls to the lambda functor affect the 
value of the variable <fo:inline font-family="monospace">i</fo:inline>, 
rather than some temporary copy of it. 

As another example, the streaming operators take their leftmost argument 
as non-const references. 

The exact rules are:

<fo:list-block id="id516027" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id516028" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The left argument of compound assignment operators (<fo:inline font-family="monospace">+=</fo:inline>, <fo:inline font-family="monospace">*=</fo:inline>, etc.) are stored as references to non-const.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id516046" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If the left argument of <fo:inline font-family="monospace">&lt;&lt;</fo:inline> or <fo:inline font-family="monospace">&gt;&gt;</fo:inline>  operator is derived from an instantiation of <fo:inline font-family="monospace">basic_ostream</fo:inline> or respectively from <fo:inline font-family="monospace">basic_istream</fo:inline>, the argument is stored as a reference to non-const. 
For all other types, the argument is stored as a copy.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id516079" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
In pointer arithmetic expressions, non-const array types are stored as non-const references.
This is to prevent pointer arithmetic making non-const arrays const. 

</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block id="lambda.le_in_details"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Lambda expressions in details</fo:marker><fo:block font-size="17.28pt">Lambda expressions in details</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
This section describes different categories of lambda expressions in details.
We devote a separate section for each of the possible forms of a lambda expression.


</fo:block><fo:block id="lambda.placeholders"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Placeholders</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The BLL defines three placeholder types: <fo:inline font-family="monospace">placeholder1_type</fo:inline>, <fo:inline font-family="monospace">placeholder2_type</fo:inline> and <fo:inline font-family="monospace">placeholder3_type</fo:inline>. 
BLL has a predefined placeholder variable for each placeholder type: <fo:inline font-family="monospace">_1</fo:inline>, <fo:inline font-family="monospace">_2</fo:inline> and <fo:inline font-family="monospace">_3</fo:inline>. 
However, the user is not forced to use these placeholders. 
It is easy to define placeholders with alternative names.
This is done by defining new variables of placeholder types. 
For example:

<fo:block id="id516155" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">boost::lambda::placeholder1_type X;
boost::lambda::placeholder2_type Y;
boost::lambda::placeholder3_type Z;
</fo:block>

With these variables defined, <fo:inline font-family="monospace">X += Y * Z</fo:inline> is equivalent to <fo:inline font-family="monospace">_1 += _2 * _3</fo:inline>.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The use of placeholders in the lambda expression determines whether the resulting function is nullary, unary, binary or 3-ary. 
The highest placeholder index is decisive. For example:

<fo:block id="id516182" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
_1 + 5              // unary
_1 * _1 + _1        // unary
_1 + _2             // binary
bind(f, _1, _2, _3) // 3-ary
_3 + 10             // 3-ary
</fo:block>

Note that the last line creates a 3-ary function, which adds <fo:inline font-family="monospace">10</fo:inline> to its <fo:inline font-style="italic">third</fo:inline> argument. 
The first two arguments are discarded.
Furthermore, lambda functors only have a minimum arity.
One can always provide more arguments (up the number of supported placeholders)
that is really needed.
The remaining arguments are just discarded.
For example:

<fo:block id="id516207" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int i, j, k; 
_1(i, j, k)        // returns i, discards j and k
(_2 + _2)(i, j, k) // returns j+j, discards i and k
</fo:block>

See
<fo:basic-link internal-destination="lambda.why_weak_arity">the section called &#x201C;
Lambda functor arity
&#x201D;</fo:basic-link> for the design rationale behind this
functionality.

</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
In addition to these three placeholder types, there is also a fourth placeholder type <fo:inline font-family="monospace">placeholderE_type</fo:inline>.
The use of this placeholder is defined in <fo:basic-link internal-destination="lambda.exceptions">the section called &#x201C;Exceptions&#x201D;</fo:basic-link> describing exception handling in lambda expressions. 
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When an actual argument is supplied for a placeholder, the parameter passing mode is always by reference. 
This means that any side-effects to the placeholder are reflected to the actual argument. 
For example:


<fo:block id="id516251" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int i = 1; 
(_1 += 2)(i);         // i is now 3
(++_1, cout &lt;&lt; _1)(i) // i is now 4, outputs 4
</fo:block></fo:block></fo:block><fo:block id="lambda.operator_expressions"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Operator expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The basic rule is that any C++ operator invocation with at least one argument being a lambda expression is itself a lambda expression.
Almost all overloadable operators are supported. 
For example, the following is a valid lambda expression:

<fo:block id="id516275" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">cout &lt;&lt; _1, _2[_3] = _1 &amp;&amp; false</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
However, there are some restrictions that originate from the C++ operator overloading rules, and some special cases.
</fo:block><fo:block id="id516285"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Operators that cannot be overloaded</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Some operators cannot be overloaded at all (<fo:inline font-family="monospace">::</fo:inline>, <fo:inline font-family="monospace">.</fo:inline>, <fo:inline font-family="monospace">.*</fo:inline>).
For some operators, the requirements on return types prevent them to be overloaded to create lambda functors.
These operators are <fo:inline font-family="monospace">-&gt;.</fo:inline>, <fo:inline font-family="monospace">-&gt;</fo:inline>, <fo:inline font-family="monospace">new</fo:inline>, <fo:inline font-family="monospace">new[]</fo:inline>, <fo:inline font-family="monospace">delete</fo:inline>, <fo:inline font-family="monospace">delete[]</fo:inline> and <fo:inline font-family="monospace">?:</fo:inline> (the conditional operator).
</fo:block></fo:block><fo:block id="lambda.assignment_and_subscript"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Assignment and subscript operators</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
These operators must be implemented as class members. 
Consequently, the left operand must be a lambda expression. For example:

<fo:block id="id516372" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int i; 
_1 = i;      // ok
i = _1;      // not ok. i is not a lambda expression
</fo:block>

There is a simple solution around this limitation, described in <fo:basic-link internal-destination="lambda.delaying_constants_and_variables">the section called &#x201C;Delaying constants and variables&#x201D;</fo:basic-link>.
In short, 
the left hand argument can be explicitly turned into a lambda functor by wrapping it with a special <fo:inline font-family="monospace">var</fo:inline> function:
<fo:block id="id516398" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
var(i) = _1; // ok
</fo:block></fo:block></fo:block><fo:block id="lambda.logical_operators"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Logical operators</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Logical operators obey the short-circuiting evaluation rules. For example, in the following code, <fo:inline font-family="monospace">i</fo:inline> is never incremented:
<fo:block id="id516423" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bool flag = true; int i = 0;
(_1 || ++_2)(flag, i);
</fo:block></fo:block></fo:block><fo:block id="lambda.comma_operator"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Comma operator</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Comma operator is the &#x201C;statement separator&#x201D; in lambda expressions. 
Since comma is also the separator between arguments in a function call, extra parenthesis are sometimes needed:

<fo:block id="id516447" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
for_each(a.begin(), a.end(), (++_1, cout &lt;&lt; _1));
</fo:block>

Without the extra parenthesis around <fo:inline font-family="monospace">++_1, cout &lt;&lt; _1</fo:inline>, the code would be interpreted as an attempt to call <fo:inline font-family="monospace">for_each</fo:inline> with four arguments.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The lambda functor created by the comma operator adheres to the C++ rule of always evaluating the left operand before the right one.
In the above example, each element of <fo:inline font-family="monospace">a</fo:inline> is first incremented, then written to the stream.
</fo:block></fo:block><fo:block id="lambda.function_call_operator"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Function call operator</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The function call operators have the effect of evaluating the lambda
functor. 
Calls with too few arguments lead to a compile time error.
</fo:block></fo:block><fo:block id="lambda.member_pointer_operator"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Member pointer operator</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The member pointer operator <fo:inline font-family="monospace">operator-&gt;*</fo:inline> can be overloaded freely. 
Hence, for user defined types, member pointer operator is no special case.
The built-in meaning, however, is a somewhat more complicated case.
The built-in member pointer operator is applied if the left argument is a pointer to an object of some class <fo:inline font-family="monospace">A</fo:inline>, and the right hand argument is a pointer to a member of <fo:inline font-family="monospace">A</fo:inline>, or a pointer to a member of a class from which <fo:inline font-family="monospace">A</fo:inline> derives.
We must separate two cases:

<fo:list-block id="id516540" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id516542" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The right hand argument is a pointer to a data member. 
In this case the lambda functor simply performs the argument substitution and calls the built-in member pointer operator, which returns a reference to the member pointed to. 
For example:
<fo:block id="id516550" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct A { int d; };
A* a = new A();
  ...
(a -&gt;* &amp;A::d);     // returns a reference to a-&gt;d 
(_1 -&gt;* &amp;A::d)(a); // likewise
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id516558" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
The right hand argument is a pointer to a member function.
For a built-in call like this, the result is kind of a delayed member function call. 
Such an expression must be followed by a function argument list, with which the delayed member function call is performed.
For example:
<fo:block id="id516567" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct B { int foo(int); };
B* b = new B();
  ...
(b -&gt;* &amp;B::foo)         // returns a delayed call to b-&gt;foo
                        // a function argument list must follow
(b -&gt;* &amp;B::foo)(1)      // ok, calls b-&gt;foo(1)

(_1 -&gt;* &amp;B::foo)(b);    // returns a delayed call to b-&gt;foo, 
                        // no effect as such
(_1 -&gt;* &amp;B::foo)(b)(1); // calls b-&gt;foo(1)
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block id="lambda.bind_expressions"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Bind expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Bind expressions can have two forms: 

<fo:block id="id516597" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bind(<fo:inline font-style="italic" font-family="monospace">target-function</fo:inline>, <fo:inline font-style="italic" font-family="monospace">bind-argument-list</fo:inline>)
bind(<fo:inline font-style="italic" font-family="monospace">target-member-function</fo:inline>, <fo:inline font-style="italic" font-family="monospace">object-argument</fo:inline>, <fo:inline font-style="italic" font-family="monospace">bind-argument-list</fo:inline>)
</fo:block>

A bind expression delays the call of a function. 
If this <fo:inline font-style="italic">target function</fo:inline> is <fo:inline font-style="italic">n</fo:inline>-ary, then the <fo:inline font-family="monospace"><fo:inline font-style="italic">bind-argument-list</fo:inline></fo:inline> must contain <fo:inline font-style="italic">n</fo:inline> arguments as well.
In the current version of the BLL, 0 &lt;= n &lt;= 9 must hold. 
For member functions, the number of arguments must be at most 8, as the object argument takes one argument position.

Basically, the
<fo:inline font-style="italic"><fo:inline font-family="monospace">bind-argument-list</fo:inline></fo:inline> must be a valid argument list for the target function, except that any argument can be replaced with a placeholder, or more generally, with a lambda expression. 
Note that also the target function can be a lambda expression.

The result of a bind expression is either a nullary, unary, binary or 3-ary function object depending on the use of placeholders in the <fo:inline font-style="italic"><fo:inline font-family="monospace">bind-argument-list</fo:inline></fo:inline> (see <fo:basic-link internal-destination="lambda.placeholders">the section called &#x201C;Placeholders&#x201D;</fo:basic-link>).
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The return type of the lambda functor created by the bind expression can be given as an explicitly specified template parameter, as in the following example:
<fo:block id="id516704" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bind&lt;<fo:inline font-style="italic">RET</fo:inline>&gt;(<fo:inline font-style="italic">target-function</fo:inline>, <fo:inline font-style="italic">bind-argument-list</fo:inline>)
</fo:block>
This is only necessary if the return type of the target function cannot be deduced.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The following sections describe the different types of bind expressions.
</fo:block><fo:block id="lambda.function_pointers_as_targets"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Function pointers or references as targets</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The target function can be a pointer or a reference to a function and it can be either bound or unbound. For example:
<fo:block id="id516743" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
X foo(A, B, C); A a; B b; C c;
bind(foo, _1, _2, c)(a, b);
bind(&amp;foo, _1, _2, c)(a, b);
bind(_1, a, b, c)(foo);
</fo:block>
 
The return type deduction always succeeds with this type of bind expressions. 
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Note, that in C++ it is possible to take the address of an overloaded function only if the address is assigned to, or used as an initializer of, a variable, the type of which solves the amibiguity, or if an explicit cast expression is used.
This means that overloaded functions cannot be used in bind expressions directly, e.g.:
<fo:block id="id516761" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
void foo(int);
void foo(float);
int i; 
  ...
bind(&amp;foo, _1)(i);                            // error 
  ...
void (*pf1)(int) = &amp;foo;
bind(pf1, _1)(i);                             // ok
bind(static_cast&lt;void(*)(int)&gt;(&amp;foo), _1)(i); // ok
</fo:block></fo:block></fo:block><fo:block id="member_functions_as_targets"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Member functions as targets</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The syntax for using pointers to member function in bind expression is:
<fo:block id="id516785" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bind(<fo:inline font-style="italic" font-family="monospace">target-member-function</fo:inline>, <fo:inline font-style="italic" font-family="monospace">object-argument</fo:inline>, <fo:inline font-style="italic" font-family="monospace">bind-argument-list</fo:inline>)
</fo:block>

The object argument can be a reference or pointer to the object, the BLL supports both cases with a uniform interface: 

<fo:block id="id516813" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bool A::foo(int) const; 
A a;
vector&lt;int&gt; ints; 
  ...
find_if(ints.begin(), ints.end(), bind(&amp;A::foo, a, _1)); 
find_if(ints.begin(), ints.end(), bind(&amp;A::foo, &amp;a, _1));
</fo:block>

Similarly, if the object argument is unbound, the resulting lambda functor can be called both via a pointer or a reference:

<fo:block id="id516826" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bool A::foo(int); 
list&lt;A&gt; refs; 
list&lt;A*&gt; pointers; 
  ...
find_if(refs.begin(), refs.end(), bind(&amp;A::foo, _1, 1)); 
find_if(pointers.begin(), pointers.end(), bind(&amp;A::foo, _1, 1));
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Even though the interfaces are the same, there are important semantic differences between using a pointer or a reference as the object argument.
The differences stem from the way <fo:inline font-family="monospace">bind</fo:inline>-functions take their parameters, and how the bound parameters are stored within the lambda functor.
The object argument has the same parameter passing and storing mechanism as any other bind argument slot (see <fo:basic-link internal-destination="lambda.storing_bound_arguments">the section called &#x201C;Storing bound arguments in lambda functions&#x201D;</fo:basic-link>); it is passed as a const reference and stored as a const copy in the lambda functor.
This creates some asymmetry between the lambda functor and the original member function, and between seemingly similar lambda functors. For example:
<fo:block id="id516864" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
class A {
  int i; mutable int j;
public:

  A(int ii, int jj) : i(ii), j(jj) {};
  void set_i(int x) { i = x; }; 
  void set_j(int x) const { j = x; }; 
};
</fo:block>

When a pointer is used, the behavior is what the programmer might expect:

<fo:block id="id516875" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
A a(0,0); int k = 1;
bind(&amp;A::set_i, &amp;a, _1)(k); // a.i == 1
bind(&amp;A::set_j, &amp;a, _1)(k); // a.j == 1
</fo:block>

Even though a const copy of the object argument is stored, the original object <fo:inline font-family="monospace">a</fo:inline> is still modified.
This is since the object argument is a pointer, and the pointer is copied, not the object it points to.
When we use a reference, the behaviour is different:

<fo:block id="id516895" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
A a(0,0); int k = 1;
bind(&amp;A::set_i, a, _1)(k); // error; a const copy of a is stored. 
                           // Cannot call a non-const function set_i
bind(&amp;A::set_j, a, _1)(k); // a.j == 0, as a copy of a is modified
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
To prevent the copying from taking place, one can use the <fo:inline font-family="monospace">ref</fo:inline> or <fo:inline font-family="monospace">cref</fo:inline> wrappers (<fo:inline font-family="monospace">var</fo:inline> and <fo:inline font-family="monospace">constant_ref</fo:inline> would do as well):
<fo:block id="id516936" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bind(&amp;A::set_i, ref(a), _1)(k); // a.j == 1
bind(&amp;A::set_j, cref(a), _1)(k); // a.j == 1
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note that the preceding discussion is relevant only for bound arguments. 
If the object argument is unbound, the parameter passing mode is always by reference. 
Hence, the argument <fo:inline font-family="monospace">a</fo:inline> is not copied in the calls to the two lambda functors below:
<fo:block id="id516956" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
A a(0,0);
bind(&amp;A::set_i, _1, 1)(a); // a.i == 1
bind(&amp;A::set_j, _1, 1)(a); // a.j == 1
</fo:block></fo:block></fo:block><fo:block id="lambda.members_variables_as_targets"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Member variables as targets</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
A pointer to a member variable is not really a function, but 
the first argument to the <fo:inline font-family="monospace">bind</fo:inline> function can nevertheless
be a pointer to a member variable.
Invoking such a bind expression returns a reference to the data member.
For example:

<fo:block id="id516985" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct A { int data; };
A a;
bind(&amp;A::data, _1)(a) = 1;     // a.data == 1
</fo:block>

The cv-qualifiers of the object whose member is accessed are respected.
For example, the following tries to write into a const location:
<fo:block id="id516998" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
const A ca = a;
bind(&amp;A::data, _1)(ca) = 1;     // error
</fo:block></fo:block></fo:block><fo:block id="lambda.function_objects_as_targets"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Function objects as targets</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">

Function objects, that is, class objects which have the function call 
operator defined, can be used as target functions. 

In general, BLL cannot deduce the return type of an arbitrary function object. 

However, there are two methods for giving BLL this capability for a certain 
function object class.

</fo:block><fo:block id="id517023"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">The result_type typedef</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">

The BLL supports the standard library convention of declaring the return type
of a function object with a member typedef named <fo:inline font-family="monospace">result_type</fo:inline> in the
function object class.

Here is a simple example:
<fo:block id="id517040" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct A {
  typedef B result_type;
  B operator()(X, Y, Z); 
};
</fo:block>

If a function object does not define a <fo:inline font-family="monospace">result_type</fo:inline> typedef, 
the method described below (<fo:inline font-family="monospace">sig</fo:inline> template) 
is attempted to resolve the return type of the
function object. If a function object defines both <fo:inline font-family="monospace">result_type</fo:inline>
and <fo:inline font-family="monospace">sig</fo:inline>, <fo:inline font-family="monospace">result_type</fo:inline> takes precedence.

</fo:block></fo:block><fo:block id="id517082"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">The sig template</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Another mechanism that make BLL aware of the return type(s) of a function object is defining
member template struct 
<fo:inline font-family="monospace">sig&lt;Args&gt;</fo:inline> with a typedef 
<fo:inline font-family="monospace">type</fo:inline> that specifies the return type.

Here is a simple example:
<fo:block id="id517106" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct A {
  template &lt;class Args&gt; struct sig { typedef B type; }
  B operator()(X, Y, Z); 
};
</fo:block>

The template argument <fo:inline font-family="monospace">Args</fo:inline> is a 
<fo:inline font-family="monospace">tuple</fo:inline> (or more precisely a <fo:inline font-family="monospace">cons</fo:inline> list) 
type <fo:basic-link internal-destination="cit:boost::tuple">[tuple]</fo:basic-link>, where the first element 
is the function 
object type itself, and the remaining elements are the types of 
the arguments, with which the function object is being called.

This may seem overly complex compared to defining the <fo:inline font-family="monospace">result_type</fo:inline> typedef.
Howver, there are two significant restrictions with using just a simple
typedef to express the return type:
<fo:list-block id="id517156" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id517162" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
If the function object defines several function call operators, there is no way to specify different result types for them.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id517168" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
If the function call operator is a template, the result type may 
depend on the template parameters. 
Hence, the typedef ought to be a template too, which the C++ language 
does not support.
</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>

The following code shows an example, where the return type depends on the type
of one of the arguments, and how that dependency can be expressed with the
<fo:inline font-family="monospace">sig</fo:inline> template:

<fo:block id="id517185" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct A {

  // the return type equals the third argument type:
  template&lt;class T1, class T2, class T3&gt;
  T3 operator()(const T1&amp; t1, const T2&amp; t2, const T3&amp; t3) const;

  template &lt;class Args&gt; 
  class sig {
    // get the third argument type (4th element)
    typedef typename 
      boost::tuples::element&lt;3, Args&gt;::type T3;
  public:
    typedef typename 
      boost::remove_cv&lt;T3&gt;::type type;
  };
};
</fo:block>


The elements of the <fo:inline font-family="monospace">Args</fo:inline> tuple are always 
non-reference types.

Moreover, the element types can have a const or volatile qualifier
(jointly referred to as <fo:inline font-style="italic">cv-qualifiers</fo:inline>), or both.
This is since the cv-qualifiers in the arguments can affect the return type.
The reason for including the potentially cv-qualified function object 
type itself into the <fo:inline font-family="monospace">Args</fo:inline> tuple, is that the function
object class can contain both const and non-const (or volatile, even
const volatile) function call operators, and they can each have a different
return type.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The <fo:inline font-family="monospace">sig</fo:inline> template can be seen as a 
<fo:inline font-style="italic">meta-function</fo:inline> that maps the argument type tuple to 
the result type of the call made with arguments of the types in the tuple.

As the example above demonstrates, the template can end up being somewhat 
complex.
Typical tasks to be performed are the extraction of the relevant types 
from the tuple, removing cv-qualifiers etc.
See the Boost type_traits <fo:basic-link internal-destination="cit:boost::type_traits">[type_traits]</fo:basic-link> and
Tuple <fo:basic-link internal-destination="cit:boost::type_traits">[type_traits]</fo:basic-link> libraries 
for tools that can aid in these tasks.
The <fo:inline font-family="monospace">sig</fo:inline> templates are a refined version of a similar
mechanism first introduced in the FC++ library  
<fo:basic-link internal-destination="cit:fc++">[fc++]</fo:basic-link>.
</fo:block></fo:block></fo:block></fo:block><fo:block id="lambda.overriding_deduced_return_type"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Overriding the deduced return type</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The return type deduction system may not be able to deduce the return types of some user defined operators or bind expressions with class objects.

A special lambda expression type is provided for stating the return type explicitly and overriding the deduction system. 
To state that the return type of the lambda functor defined by the lambda expression <fo:inline font-family="monospace">e</fo:inline> is <fo:inline font-family="monospace">T</fo:inline>, you can write:

<fo:block id="id517312" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">ret&lt;T&gt;(e);</fo:block>

The effect is that the return type deduction is not performed for the lambda expression <fo:inline font-family="monospace">e</fo:inline> at all, but instead, <fo:inline font-family="monospace">T</fo:inline> is used as the return type. 
Obviously <fo:inline font-family="monospace">T</fo:inline> cannot be an arbitrary type, the true result of the lambda functor must be implicitly convertible to <fo:inline font-family="monospace">T</fo:inline>. 
For example:

<fo:block id="id517348" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
A a; B b;
C operator+(A, B);
int operator*(A, B); 
  ...
ret&lt;D&gt;(_1 + _2)(a, b);     // error (C cannot be converted to D)
ret&lt;C&gt;(_1 + _2)(a, b);     // ok
ret&lt;float&gt;(_1 * _2)(a, b); // ok (int can be converted to float)
  ...
struct X {
  Y operator(int)();   
};
  ...
X x; int i;
bind(x, _1)(i);            // error, return type cannot be deduced
ret&lt;Y&gt;(bind(x, _1))(i);    // ok
</fo:block>
For bind expressions, there is a short-hand notation that can be used instead of <fo:inline font-family="monospace">ret</fo:inline>. 
The last line could alternatively be written as:

<fo:block id="id517376" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">bind&lt;Z&gt;(x, _1)(i);</fo:block>
This feature is modeled after the Boost Bind library <fo:basic-link internal-destination="cit:boost::bind">[bind]</fo:basic-link>.

</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note that within nested lambda expressions, 
the <fo:inline font-family="monospace">ret</fo:inline> must be used at each subexpression where 
the deduction would otherwise fail. 
For example:
<fo:block id="id517404" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
A a; B b;
C operator+(A, B); D operator-(C);
  ...
ret&lt;D&gt;( - (_1 + _2))(a, b); // error 
ret&lt;D&gt;( - ret&lt;C&gt;(_1 + _2))(a, b); // ok
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you find yourself using  <fo:inline font-family="monospace">ret</fo:inline> repeatedly with the same types, it is worth while extending the return type deduction (see <fo:basic-link internal-destination="lambda.extending">the section called &#x201C;Extending return type deduction system&#x201D;</fo:basic-link>).
</fo:block><fo:block id="lambda.nullary_functors_and_ret"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Nullary lambda functors and ret</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
As stated above, the effect of <fo:inline font-family="monospace">ret</fo:inline> is to prevent the return type deduction to be performed. 
However, there is an exception. 
Due to the way the C++ template instantiation works, the compiler is always forced to instantiate the return type deduction templates for zero-argument lambda functors.
This introduces a slight problem with <fo:inline font-family="monospace">ret</fo:inline>, best described with an example:

<fo:block id="id517461" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct F { int operator()(int i) const; }; 
F f;
  ...
bind(f, _1);           // fails, cannot deduce the return type
ret&lt;int&gt;(bind(f, _1)); // ok
  ...
bind(f, 1);            // fails, cannot deduce the return type
ret&lt;int&gt;(bind(f, 1));  // fails as well!
</fo:block>
The BLL cannot deduce the return types of the above bind calls, as <fo:inline font-family="monospace">F</fo:inline> does not define the typedef <fo:inline font-family="monospace">result_type</fo:inline>. 
One would expect <fo:inline font-family="monospace">ret</fo:inline> to fix this, but for the nullary lambda functor that results from a bind expression (last line above) this does not work.
The return type deduction templates are instantiated, even though it would not be necessary and the result is a compilation error.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The solution to this is not to use the <fo:inline font-family="monospace">ret</fo:inline> function, but rather define the return type as an explicitly specified template parameter in the <fo:inline font-family="monospace">bind</fo:inline> call:
<fo:block id="id517520" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bind&lt;int&gt;(f, 1);       // ok
</fo:block>

The lambda functors created with 
<fo:inline font-family="monospace">ret&lt;<fo:inline font-style="italic" font-family="monospace">T</fo:inline>&gt;(bind(<fo:inline font-style="italic" font-family="monospace">arg-list</fo:inline>))</fo:inline> and 
<fo:inline font-family="monospace">bind&lt;<fo:inline font-style="italic" font-family="monospace">T</fo:inline>&gt;(<fo:inline font-style="italic" font-family="monospace">arg-list</fo:inline>)</fo:inline> have the exact same functionality &#x2014;
apart from the fact that for some nullary lambda functors the former does not work while the latter does. 
</fo:block></fo:block></fo:block><fo:block id="lambda.delaying_constants_and_variables"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Delaying constants and variables</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The unary functions <fo:inline font-family="monospace">constant</fo:inline>,
<fo:inline font-family="monospace">constant_ref</fo:inline> and <fo:inline font-family="monospace">var</fo:inline> turn their argument into a lambda functor, that implements an identity mapping.
The former two are for constants, the latter for variables. 
The use of these <fo:inline font-style="italic">delayed</fo:inline> constants and variables is sometimes necessary due to the lack of explicit syntax for lambda expressions. 
For example:
<fo:block id="id517614" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
for_each(a.begin(), a.end(), cout &lt;&lt; _1 &lt;&lt; ' ');
for_each(a.begin(), a.end(), cout &lt;&lt; ' ' &lt;&lt; _1);
</fo:block>
The first line outputs the elements of <fo:inline font-family="monospace">a</fo:inline> separated by spaces, while the second line outputs a space followed by the elements of <fo:inline font-family="monospace">a</fo:inline> without any separators.
The reason for this is that neither of the operands of 
<fo:inline font-family="monospace">cout &lt;&lt; ' '</fo:inline> is a lambda expression, hence <fo:inline font-family="monospace">cout &lt;&lt; ' '</fo:inline> is evaluated immediately.

To delay the evaluation of <fo:inline font-family="monospace">cout &lt;&lt; ' '</fo:inline>, one of the operands must be explicitly marked as a lambda expression. 
This is accomplished with the <fo:inline font-family="monospace">constant</fo:inline> function:
<fo:block id="id517670" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
for_each(a.begin(), a.end(), cout &lt;&lt; constant(' ') &lt;&lt; _1);
</fo:block>

The call <fo:inline font-family="monospace">constant(' ')</fo:inline> creates a nullary lambda functor which stores the character constant <fo:inline font-family="monospace">' '</fo:inline> 
and returns a reference to it when invoked. 
The function <fo:inline font-family="monospace">constant_ref</fo:inline> is similar, except that it
stores a constant reference to its argument.

The <fo:inline font-family="monospace">constant</fo:inline> and <fo:inline font-family="monospace">consant_ref</fo:inline> are only
needed when the operator call has side effects, like in the above example.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Sometimes we need to delay the evaluation of a variable. 
Suppose we wanted to output the elements of a container in a numbered list:

<fo:block id="id517720" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int index = 0; 
for_each(a.begin(), a.end(), cout &lt;&lt; ++index &lt;&lt; ':' &lt;&lt; _1 &lt;&lt; '\n');
for_each(a.begin(), a.end(), cout &lt;&lt; ++var(index) &lt;&lt; ':' &lt;&lt; _1 &lt;&lt; '\n');
</fo:block>

The first <fo:inline font-family="monospace">for_each</fo:inline> invocation does not do what we want; <fo:inline font-family="monospace">index</fo:inline> is incremented only once, and its value is written into the output stream only once.
By using <fo:inline font-family="monospace">var</fo:inline> to make <fo:inline font-family="monospace">index</fo:inline> a lambda expression, we get the desired effect.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
In sum, <fo:inline font-family="monospace">var(x)</fo:inline> creates a nullary lambda functor, 
which stores a reference to the variable <fo:inline font-family="monospace">x</fo:inline>. 
When the lambda functor is invoked, a reference to <fo:inline font-family="monospace">x</fo:inline> is returned.
</fo:block><fo:block id="id517785"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Naming delayed constants and variables</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
It is possible to predefine and name a delayed variable or constant outside a lambda expression. 
The templates <fo:inline font-family="monospace">var_type</fo:inline>, <fo:inline font-family="monospace">constant_type</fo:inline> 
and <fo:inline font-family="monospace">constant_ref_type</fo:inline> serve for this purpose. 
They are used as:
<fo:block id="id517814" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
var_type&lt;T&gt;::type delayed_i(var(i));
constant_type&lt;T&gt;::type delayed_c(constant(c));
</fo:block>
The first line defines the variable <fo:inline font-family="monospace">delayed_i</fo:inline> which is a delayed version of the variable <fo:inline font-family="monospace">i</fo:inline> of type <fo:inline font-family="monospace">T</fo:inline>.
Analogously, the second line defines the constant <fo:inline font-family="monospace">delayed_c</fo:inline> as a delayed version of the constant <fo:inline font-family="monospace">c</fo:inline>.
For example:

<fo:block id="id517858" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int i = 0; int j;
for_each(a.begin(), a.end(), (var(j) = _1, _1 = var(i), var(i) = var(j))); 
</fo:block>
is equivalent to:
<fo:block id="id517867" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int i = 0; int j;
var_type&lt;int&gt;::type vi(var(i)), vj(var(j));
for_each(a.begin(), a.end(), (vj = _1, _1 = vi, vi = vj));
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Here is an example of naming a delayed constant:
<fo:block id="id517880" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
constant_type&lt;char&gt;::type space(constant(' '));
for_each(a.begin(),a.end(), cout &lt;&lt; space &lt;&lt; _1);
</fo:block></fo:block></fo:block><fo:block id="id517889"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">About assignment and subscript operators</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
As described in <fo:basic-link internal-destination="lambda.assignment_and_subscript">the section called &#x201C;Assignment and subscript operators&#x201D;</fo:basic-link>, assignment and subscripting operators are always defined as member functions.
This means, that for expressions of the form
<fo:inline font-family="monospace">x = y</fo:inline> or <fo:inline font-family="monospace">x[y]</fo:inline> to be interpreted as lambda expressions, the left-hand operand <fo:inline font-family="monospace">x</fo:inline> must be a lambda expression. 
Consequently, it is sometimes necessary to use <fo:inline font-family="monospace">var</fo:inline> for this purpose.
We repeat the example from <fo:basic-link internal-destination="lambda.assignment_and_subscript">the section called &#x201C;Assignment and subscript operators&#x201D;</fo:basic-link>:

<fo:block id="id517943" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int i; 
i = _1;       // error
var(i) = _1;  // ok
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">

Note that the compound assignment operators <fo:inline font-family="monospace">+=</fo:inline>, <fo:inline font-family="monospace">-=</fo:inline> etc. can be defined as non-member functions, and thus they are interpreted as lambda expressions even if only the right-hand operand is a lambda expression.
Nevertheless, it is perfectly ok to delay the left operand explicitly. 
For example, <fo:inline font-family="monospace">i += _1</fo:inline> is equivalent to <fo:inline font-family="monospace">var(i) += _1</fo:inline>.
</fo:block></fo:block></fo:block><fo:block id="lambda.lambda_expressions_for_control_structures"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Lambda expressions for control structures</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
BLL defines several functions to create lambda functors that represent control structures. 
They all take lambda functors as parameters and return <fo:inline font-family="monospace">void</fo:inline>.
To start with an example, the following code outputs all even elements of some container <fo:inline font-family="monospace">a</fo:inline>:

<fo:block id="id518012" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
for_each(a.begin(), a.end(), 
         if_then(_1 % 2 == 0, cout &lt;&lt; _1));  
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The BLL supports the following function templates for control structures: 

<fo:block id="id518024" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
if_then(condition, then_part)
if_then_else(condition, then_part, else_part)
if_then_else_return(condition, then_part, else_part)
while_loop(condition, body)
while_loop(condition) // no body case
do_while_loop(condition, body)
do_while_loop(condition) // no body case 
for_loop(init, condition, increment, body)
for_loop(init, condition, increment) // no body case
switch_statement(...)
</fo:block>

The return types of all control construct lambda functor is 
<fo:inline font-family="monospace">void</fo:inline>, except for <fo:inline font-family="monospace">if_then_else_return</fo:inline>,
which wraps a call to the conditional operator 
<fo:block id="id518051" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
condition ? then_part : else_part
</fo:block>
The return type rules for this operator are somewhat complex. 
Basically, if the branches have the same type, this type is the return type.
If the type of the branches differ, one branch, say of type 
<fo:inline font-family="monospace">A</fo:inline>, must be convertible to the other branch, 
say of type <fo:inline font-family="monospace">B</fo:inline>.
In this situation, the result type is <fo:inline font-family="monospace">B</fo:inline>.
Further, if the common type is an lvalue, the return type will be an lvalue
too.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Delayed variables tend to be commonplace in control structure lambda expressions. 
For instance, here we use the <fo:inline font-family="monospace">var</fo:inline> function to turn the arguments of <fo:inline font-family="monospace">for_loop</fo:inline> into lambda expressions. 
The effect of the code is to add 1 to each element of a two-dimensional array:

<fo:block id="id518103" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int a[5][10]; int i;
for_each(a, a+5, 
  for_loop(var(i)=0, var(i)&lt;10, ++var(i), 
           _1[var(i)] += 1));  
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The BLL supports an alternative syntax for control expressions, suggested
by Joel de Guzmann. 
By overloading the <fo:inline font-family="monospace">operator[]</fo:inline> we can
get a closer resemblance with the built-in control structures:

<fo:block id="id518123" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
if_(condition)[then_part]
if_(condition)[then_part].else_[else_part]
while_(condition)[body]
do_[body].while_(condition)
for_(init, condition, increment)[body]
</fo:block>

For example, using this syntax the <fo:inline font-family="monospace">if_then</fo:inline> example above
can be written as:
<fo:block id="id518140" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
for_each(a.begin(), a.end(), 
         if_(_1 % 2 == 0)[ cout &lt;&lt; _1 ])  
</fo:block>

As more experience is gained, we may end up deprecating one or the other 
of these syntaces. 

</fo:block><fo:block id="lambda.switch_statement"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Switch statement</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The lambda expressions for <fo:inline font-family="monospace">switch</fo:inline> control structures are more complex since the number of cases may vary. 
The general form of a switch lambda expression is:

<fo:block id="id518169" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
switch_statement(<fo:inline font-style="italic" font-family="monospace">condition</fo:inline>, 
  case_statement&lt;<fo:inline font-style="italic" font-family="monospace">label</fo:inline>&gt;(<fo:inline font-style="italic" font-family="monospace">lambda expression</fo:inline>),
  case_statement&lt;<fo:inline font-style="italic" font-family="monospace">label</fo:inline>&gt;(<fo:inline font-style="italic" font-family="monospace">lambda expression</fo:inline>),
  ...
  default_statement(<fo:inline font-style="italic" font-family="monospace">lambda expression</fo:inline>)
)
</fo:block>

The <fo:inline font-family="monospace"><fo:inline font-style="italic" font-family="monospace">condition</fo:inline></fo:inline> argument must be a lambda expression that creates a lambda functor with an integral return type.
The different cases are created with the <fo:inline font-family="monospace">case_statement</fo:inline> functions, and the optional default case with the <fo:inline font-family="monospace">default_statement</fo:inline> function.
The case labels are given as explicitly specified template arguments to <fo:inline font-family="monospace">case_statement</fo:inline> functions and 
<fo:inline font-family="monospace">break</fo:inline> statements are implicitly part of each case. 
For example, <fo:inline font-family="monospace">case_statement&lt;1&gt;(a)</fo:inline>, where <fo:inline font-family="monospace">a</fo:inline> is some lambda functor,  generates the code:

<fo:block id="id518275" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
case 1: 
  <fo:inline font-style="italic" font-family="monospace">evaluate lambda functor</fo:inline> a; 
  break;
</fo:block>
The <fo:inline font-family="monospace">switch_statement</fo:inline> function is specialized for up to 9 case statements.

</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
As a concrete example, the following code iterates over some container <fo:inline font-family="monospace">v</fo:inline> and ouptuts &#x201C;zero&#x201D; for each <fo:inline font-family="monospace">0</fo:inline>, &#x201C;one&#x201D; for each <fo:inline font-family="monospace">1</fo:inline>, and &#x201C;other: <fo:inline font-style="italic" font-family="monospace">n</fo:inline>&#x201D; for any other value <fo:inline font-style="italic" font-family="monospace">n</fo:inline>.
Note that another lambda expression is sequenced after the <fo:inline font-family="monospace">switch_statement</fo:inline> to output a line break after each element:

<fo:block id="id518351" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
std::for_each(v.begin(), v.end(),
  ( 
    switch_statement(
      _1,
      case_statement&lt;0&gt;(std::cout &lt;&lt; constant("zero")),
      case_statement&lt;1&gt;(std::cout &lt;&lt; constant("one")),
      default_statement(cout &lt;&lt; constant("other: ") &lt;&lt; _1)
    ), 
    cout &lt;&lt; constant("\n") 
  )
);
</fo:block></fo:block></fo:block><fo:block id="lambda.exceptions"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Exceptions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The BLL provides lambda functors that throw and catch exceptions.
Lambda functors for throwing exceptions are created with the unary function <fo:inline font-family="monospace">throw_exception</fo:inline>.
The argument to this function is the exception to be thrown, or a lambda functor which creates the exception to be thrown.
A lambda functor for rethrowing exceptions is created with the nullary <fo:inline font-family="monospace">rethrow</fo:inline> function.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Lambda expressions for handling exceptions are somewhat more complex.
The general form of a lambda expression for try catch blocks is as follows:

<fo:block id="id518400" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
try_catch(
  <fo:inline font-style="italic" font-family="monospace">lambda expression</fo:inline>,
  catch_exception&lt;<fo:inline font-style="italic" font-family="monospace">type</fo:inline>&gt;(<fo:inline font-style="italic" font-family="monospace">lambda expression</fo:inline>),
  catch_exception&lt;<fo:inline font-style="italic" font-family="monospace">type</fo:inline>&gt;(<fo:inline font-style="italic" font-family="monospace">lambda expression</fo:inline>),
  ...
  catch_all(<fo:inline font-style="italic" font-family="monospace">lambda expression</fo:inline>)
)
</fo:block>

The first lambda expression is the try block. 
Each <fo:inline font-family="monospace">catch_exception</fo:inline> defines a catch block where the 
explicitly specified template argument defines the type of the exception 
to catch.

The lambda expression within the <fo:inline font-family="monospace">catch_exception</fo:inline> defines 
the actions to take if the exception is caught.

Note that the resulting exception handlers catch the exceptions as 
references, i.e., <fo:inline font-family="monospace">catch_exception&lt;T&gt;(...)</fo:inline> 
results in the catch block:

<fo:block id="id518475" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
catch(T&amp; e) { ... }
</fo:block>

The last catch block can alternatively be a call to 
<fo:inline font-family="monospace">catch_exception&lt;<fo:inline font-style="italic" font-family="monospace">type</fo:inline>&gt;</fo:inline> 
or to 
<fo:inline font-family="monospace">catch_all</fo:inline>, which is the lambda expression equivalent to 
<fo:inline font-family="monospace">catch(...)</fo:inline>.

</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">

The <fo:basic-link internal-destination="ex:exceptions">Example&#xA0;1, &#x201C;Throwing and handling exceptions in lambda expressions.&#x201D;</fo:basic-link> demonstrates the use of the BLL 
exception handling tools. 
The first handler catches exceptions of type <fo:inline font-family="monospace">foo_exception</fo:inline>. 
Note the use of <fo:inline font-family="monospace">_1</fo:inline> placeholder in the body of the handler.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The second handler shows how to throw exceptions, and demonstrates the 
use of the <fo:inline font-style="italic">exception placeholder</fo:inline><fo:inline font-family="monospace">_e</fo:inline>.

It is a special placeholder, which refers to the caught exception object 
within the handler body.

Here we are handling an exception of type <fo:inline font-family="monospace">std::exception</fo:inline>, 
which carries a string explaining the cause of the exception. 

This explanation can be queried with the zero-argument member 
function <fo:inline font-family="monospace">what</fo:inline>.

The expression
<fo:inline font-family="monospace">bind(&amp;std::exception::what, _e)</fo:inline> creates the lambda 
function for making that call.

Note that <fo:inline font-family="monospace">_e</fo:inline> cannot be used outside of an exception handler lambda expression.


The last line of the second handler constructs a new exception object and 
throws that with <fo:inline font-family="monospace">throw exception</fo:inline>. 

Constructing and destructing objects within lambda expressions is 
explained in <fo:basic-link internal-destination="lambda.construction_and_destruction">the section called &#x201C;Construction and destruction&#x201D;</fo:basic-link></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Finally, the third handler (<fo:inline font-family="monospace">catch_all</fo:inline>) demonstrates 
rethrowing exceptions.
</fo:block><fo:block id="ex:exceptions" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Example&#xA0;1.&#xA0;Throwing and handling exceptions in lambda expressions.</fo:block><fo:block id="id518620" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
for_each(
  a.begin(), a.end(),
  try_catch(
    bind(foo, _1),                 // foo may throw
    catch_exception&lt;foo_exception&gt;(
      cout &lt;&lt; constant("Caught foo_exception: ") 
           &lt;&lt; "foo was called with argument = " &lt;&lt; _1
    ),
    catch_exception&lt;std::exception&gt;(
      cout &lt;&lt; constant("Caught std::exception: ") 
           &lt;&lt; bind(&amp;std::exception::what, _e),
      throw_exception(bind(constructor&lt;bar_exception&gt;(), _1)))
    ),      
    catch_all(
      (cout &lt;&lt; constant("Unknown"), rethrow())
    )
  )
);
</fo:block></fo:block></fo:block><fo:block id="lambda.construction_and_destruction"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Construction and destruction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Operators <fo:inline font-family="monospace">new</fo:inline> and <fo:inline font-family="monospace">delete</fo:inline> can be 
overloaded, but their return types are fixed. 

Particularly, the return types cannot be lambda functors, 
which prevents them to be overloaded for lambda expressions.

It is not possible to take the address of a constructor, 
hence constructors cannot be used as target functions in bind expressions.

The same is true for destructors.

As a way around these constraints, BLL defines wrapper classes for 
<fo:inline font-family="monospace">new</fo:inline> and <fo:inline font-family="monospace">delete</fo:inline> calls, 
as well as for constructors and destructors.

Instances of these classes are function objects, that can be used as 
target functions of bind expressions. 

For example:

<fo:block id="id518682" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int* a[10];
for_each(a, a+10, _1 = bind(new_ptr&lt;int&gt;())); 
for_each(a, a+10, bind(delete_ptr(), _1));
</fo:block>

The <fo:inline font-family="monospace">new_ptr&lt;int&gt;()</fo:inline> expression creates 
a function object that calls <fo:inline font-family="monospace">new int()</fo:inline> when invoked, 
and wrapping that inside <fo:inline font-family="monospace">bind</fo:inline> makes it a lambda functor.

In the same way, the expression <fo:inline font-family="monospace">delete_ptr()</fo:inline> creates 
a function object that invokes <fo:inline font-family="monospace">delete</fo:inline> on its argument. 

Note that <fo:inline font-family="monospace">new_ptr&lt;<fo:inline font-style="italic" font-family="monospace">T</fo:inline>&gt;()</fo:inline> 
can take arguments as well.

They are passed directly to the constructor invocation and thus allow 
calls to constructors which take arguments. 

</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">

As an example of constructor calls in lambda expressions, 
the following code reads integers from two containers <fo:inline font-family="monospace">x</fo:inline> 
and <fo:inline font-family="monospace">y</fo:inline>, 
constructs pairs out of them and inserts them into a third container:

<fo:block id="id518766" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
vector&lt;pair&lt;int, int&gt; &gt; v;
transform(x.begin(), x.end(), y.begin(), back_inserter(v),
          bind(constructor&lt;pair&lt;int, int&gt; &gt;(), _1, _2));
</fo:block><fo:basic-link internal-destination="table:constructor_destructor_fos">Table&#xA0;1, &#x201C;Construction and destruction related function objects.&#x201D;</fo:basic-link> lists all the function 
objects related to creating and destroying objects,
 showing the expression to create and call the function object, 
and the effect of evaluating that expression.

</fo:block><fo:block span="none"><fo:block id="table:constructor_destructor_fos" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;1.&#xA0;Construction and destruction related function objects.</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Function object call</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Wrapped expression</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">constructor&lt;T&gt;()(<fo:inline font-style="italic" font-family="monospace">arg_list</fo:inline>)</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>T(<fo:inline font-style="italic" font-family="monospace">arg_list</fo:inline>)</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">destructor()(a)</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">a.~A()</fo:inline>, where <fo:inline font-family="monospace">a</fo:inline> is of type <fo:inline font-family="monospace">A</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">destructor()(pa)</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">pa-&gt;~A()</fo:inline>, where <fo:inline font-family="monospace">pa</fo:inline> is of type <fo:inline font-family="monospace">A*</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">new_ptr&lt;T&gt;()(<fo:inline font-style="italic" font-family="monospace">arg_list</fo:inline>)</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">new T(<fo:inline font-style="italic" font-family="monospace">arg_list</fo:inline>)</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">new_array&lt;T&gt;()(sz)</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">new T[sz]</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">delete_ptr()(p)</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">delete p</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">delete_array()(p)</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:inline font-family="monospace">delete p[]</fo:inline></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="id518957"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Special lambda expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id518961"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Preventing argument substitution</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
When a lambda functor is called, the default behavior is to substitute 
the actual arguments for the placeholders within all subexpressions.

This section describes the tools to prevent the substitution and 
evaluation of a subexpression, and explains when these tools should be used.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The arguments to a bind expression can be arbitrary lambda expressions, 
e.g., other bind expressions.

For example:

<fo:block id="id518976" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int foo(int); int bar(int);
...
int i;
bind(foo, bind(bar, _1)(i);
</fo:block>

The last line makes the call <fo:inline font-family="monospace">foo(bar(i));</fo:inline>

Note that the first argument in a bind expression, the target function, 
is no exception, and can thus be a bind expression too.

The innermost lambda functor just has to return something that can be used 
as a target function: another lambda functor, function pointer, 
pointer to member function etc. 

For example, in the following code the innermost lambda functor makes 
a selection between two functions, and returns a pointer to one of them:

<fo:block id="id518999" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int add(int a, int b) { return a+b; }
int mul(int a, int b) { return a*b; }

int(*)(int, int)  add_or_mul(bool x) { 
  return x ? add : mul; 
}

bool condition; int i; int j;
...
bind(bind(&amp;add_or_mul, _1), _2, _3)(condition, i, j);
</fo:block></fo:block><fo:block id="lambda.unlambda"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Unlambda</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A nested bind expression may occur inadvertently, 
if the target function is a variable with a type that depends on a 
template parameter. 

Typically the target function could be a formal parameter of a 
function template. 

In such a case, the programmer may not know whether the target function is a lambda functor or not.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider the following function template:

<fo:block id="id519029" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
template&lt;class F&gt;
int nested(const F&amp; f) {
  int x;
  ...
  bind(f, _1)(x);
  ...
}
</fo:block>

Somewhere inside the function the formal parameter
<fo:inline font-family="monospace">f</fo:inline> is used as a target function in a bind expression. 

In order for this <fo:inline font-family="monospace">bind</fo:inline> call to be valid, 
<fo:inline font-family="monospace">f</fo:inline> must be a unary function.

Suppose the following two calls to <fo:inline font-family="monospace">nested</fo:inline> are made:

<fo:block id="id519069" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int foo(int);
int bar(int, int);
nested(&amp;foo);
nested(bind(bar, 1, _1));
</fo:block>

Both are unary functions, or function objects, with appropriate argument 
and return types, but the latter will not compile.

In the latter call, the bind expression inside <fo:inline font-family="monospace">nested</fo:inline> 
will become:

<fo:block id="id519087" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bind(bind(bar, 1, _1), _1) 
</fo:block>

When this is invoked with <fo:inline font-family="monospace">x</fo:inline>, 
after substituitions we end up trying to call

<fo:block id="id519101" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bar(1, x)(x)
</fo:block>

which is an error. 

The call to <fo:inline font-family="monospace">bar</fo:inline> returns int, 
not a unary function or function object.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
In the example above, the intent of the bind expression in the 
<fo:inline font-family="monospace">nested</fo:inline> function is to treat <fo:inline font-family="monospace">f</fo:inline> 
as an ordinary function object, instead of a lambda functor. 

The BLL provides the function template <fo:inline font-family="monospace">unlambda</fo:inline> to 
express this: a lambda functor wrapped inside <fo:inline font-family="monospace">unlambda</fo:inline> 
is not a lambda functor anymore, and does not take part into the 
argument substitution process.

Note that for all other argument types <fo:inline font-family="monospace">unlambda</fo:inline> is 
an identity operation, except for making non-const objects const.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Using <fo:inline font-family="monospace">unlambda</fo:inline>, the <fo:inline font-family="monospace">nested</fo:inline> 
function is written as:

<fo:block id="id519175" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
template&lt;class F&gt;
int nested(const F&amp; f) {
  int x;
  ...
  bind(unlambda(f), _1)(x);
  ...
}
</fo:block></fo:block></fo:block><fo:block id="id519185"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Protect</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The <fo:inline font-family="monospace">protect</fo:inline> function is related to unlambda. 

It is also used to prevent the argument substitution taking place, 
but whereas <fo:inline font-family="monospace">unlambda</fo:inline> turns a lambda functor into 
an ordinary function object for good, <fo:inline font-family="monospace">protect</fo:inline> does 
this temporarily, for just one evaluation round.

For example:

<fo:block id="id519215" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int x = 1, y = 10;
(_1 + protect(_1 + 2))(x)(y);
</fo:block>
    
The first call substitutes <fo:inline font-family="monospace">x</fo:inline> for the leftmost 
<fo:inline font-family="monospace">_1</fo:inline>, and results in another lambda functor 
<fo:inline font-family="monospace">x + (_1 + 2)</fo:inline>, which after the call with 
<fo:inline font-family="monospace">y</fo:inline> becomes <fo:inline font-family="monospace">x + (y + 2)</fo:inline>, 
and thus finally 13.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Primary motivation for including <fo:inline font-family="monospace">protect</fo:inline> into the library, 
was to allow nested STL algorithm invocations 
(<fo:basic-link internal-destination="lambda.nested_stl_algorithms">the section called &#x201C;Nesting STL algorithm invocations&#x201D;</fo:basic-link>).
</fo:block></fo:block></fo:block><fo:block id="lambda.rvalues_as_actual_arguments"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Rvalues as actual arguments to lambda functors</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Actual arguments to the lambda functors cannot be non-const rvalues.
This is due to a deliberate design decision: either we have this restriction, 
or there can be no side-effects to the actual arguments.

There are ways around this limitation.

We repeat the example from section 
<fo:basic-link internal-destination="lambda.actual_arguments_to_lambda_functors">the section called &#x201C;About actual arguments to lambda functors&#x201D;</fo:basic-link> and list the 
different solutions:

<fo:block id="id519303" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int i = 1; int j = 2; 
(_1 + _2)(i, j); // ok
(_1 + _2)(1, 2); // error (!)
</fo:block><fo:list-block id="id519309" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id519315" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
If the rvalue is of a class type, the return type of the function that 
creates the rvalue should be defined as const. 
Due to an unfortunate language restriction this does not work for 
built-in types, as built-in rvalues cannot be const qualified. 
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id519323" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
If the lambda function call is accessible, the <fo:inline font-family="monospace">make_const</fo:inline> 
function can be used to <fo:inline font-style="italic">constify</fo:inline> the rvalue. E.g.:

<fo:block id="id519339" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
(_1 + _2)(make_const(1), make_const(2)); // ok
</fo:block>

Commonly the lambda function call site is inside a standard algorithm 
function template, preventing this solution to be used.

</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id519348" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
If neither of the above is possible, the lambda expression can be wrapped 
in a <fo:inline font-family="monospace">const_parameters</fo:inline> function. 
It creates another type of lambda functor, which takes its arguments as 
const references. For example:

<fo:block id="id519362" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
const_parameters(_1 + _2)(1, 2); // ok
</fo:block>

Note that <fo:inline font-family="monospace">const_parameters</fo:inline> makes all arguments const.
Hence, in the case were one of the arguments is a non-const rvalue, 
and another argument needs to be passed as a non-const reference, 
this approach cannot be used.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id519380" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If none of the above is possible, there is still one solution, 
which unfortunately can break const correctness.

The solution is yet another lambda functor wrapper, which we have named 
<fo:inline font-family="monospace">break_const</fo:inline> to alert the user of the potential dangers 
of this function. 

The <fo:inline font-family="monospace">break_const</fo:inline> function creates a lambda functor that 
takes its arguments as const, and casts away constness prior to the call 
to the original wrapped lambda functor.

For example:
<fo:block id="id519404" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int i; 
...
(_1 += _2)(i, 2);                 // error, 2 is a non-const rvalue
const_parameters(_1 += _2)(i, 2); // error, i becomes const
break_const(_1 += _2)(i, 2);      // ok, but dangerous
</fo:block>

Note, that the results of <fo:inline font-family="monospace"> break_const</fo:inline> or 
<fo:inline font-family="monospace">const_parameters</fo:inline> are not lambda functors, 
so they cannot be used as subexpressions of lambda expressions. For instance:

<fo:block id="id519429" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
break_const(_1 + _2) + _3; // fails.
const_parameters(_1 + _2) + _3; // fails.
</fo:block>

However, this kind of code should never be necessary, 
since calls to sub lambda functors are made inside the BLL, 
and are not affected by the non-const rvalue problem.
</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block id="id519440"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Casts, sizeof and typeid</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="lambda.cast_expressions"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">
Cast expressions
</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The BLL defines its counterparts for the four cast expressions 
<fo:inline font-family="monospace">static_cast</fo:inline>, <fo:inline font-family="monospace">dynamic_cast</fo:inline>, 
<fo:inline font-family="monospace">const_cast</fo:inline> and <fo:inline font-family="monospace">reinterpret_cast</fo:inline>.

The BLL versions of the cast expressions have the prefix 
<fo:inline font-family="monospace">ll_</fo:inline>.

The type to cast to is given as an explicitly specified template argument, 
and the sole argument is the expression from which to perform the cast.

If the argument is a lambda functor, the lambda functor is evaluated first.

For example, the following code uses <fo:inline font-family="monospace">ll_dynamic_cast</fo:inline> 
to count the number of <fo:inline font-family="monospace">derived</fo:inline> instances in the container 
<fo:inline font-family="monospace">a</fo:inline>:

<fo:block id="id519514" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
class base {};
class derived : public base {};

vector&lt;base*&gt; a;
...
int count = 0;
for_each(a.begin(), a.end(), 
         if_then(ll_dynamic_cast&lt;derived*&gt;(_1), ++var(count)));
</fo:block></fo:block></fo:block><fo:block id="id519526"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Sizeof and typeid</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The BLL counterparts for these expressions are named 
<fo:inline font-family="monospace">ll_sizeof</fo:inline> and <fo:inline font-family="monospace">ll_typeid</fo:inline>.

Both take one argument, which can be a lambda expression.
The lambda functor created wraps the <fo:inline font-family="monospace">sizeof</fo:inline> or 
<fo:inline font-family="monospace">typeid</fo:inline> call, and when the lambda functor is called 
the wrapped operation is performed.

For example:

<fo:block id="id519561" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
vector&lt;base*&gt; a; 
...
for_each(a.begin(), a.end(), 
         cout &lt;&lt; bind(&amp;type_info::name, ll_typeid(*_1)));
</fo:block>

Here <fo:inline font-family="monospace">ll_typeid</fo:inline> creates a lambda functor for 
calling <fo:inline font-family="monospace">typeid</fo:inline> for each element.

The result of a <fo:inline font-family="monospace">typeid</fo:inline> call is an instance of 
the <fo:inline font-family="monospace">type_info</fo:inline> class, and the bind expression creates 
a lambda functor for calling the <fo:inline font-family="monospace">name</fo:inline> member 
function of that class.

</fo:block></fo:block></fo:block><fo:block id="lambda.nested_stl_algorithms"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Nesting STL algorithm invocations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The BLL defines common STL algorithms as function object classes, 
instances of which can be used as target functions in bind expressions.
For example, the following code iterates over the elements of a 
two-dimensional array, and computes their sum.

<fo:block id="id519623" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int a[100][200];
int sum = 0;

std::for_each(a, a + 100, 
	      bind(ll::for_each(), _1, _1 + 200, protect(sum += _1)));
</fo:block>

The BLL versions of the STL algorithms are classes, which define the function call operator (or several overloaded ones) to call the corresponding function templates in the <fo:inline font-family="monospace">std</fo:inline> namespace.
All these structs are placed in the subnamespace <fo:inline font-family="monospace">boost::lambda:ll</fo:inline>. 
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Note that there is no easy way to express an overloaded member function 
call in a lambda expression. 

This limits the usefulness of nested STL algorithms, as for instance 
the <fo:inline font-family="monospace">begin</fo:inline> function has more than one overloaded 
definitions in container templates.

In general, something analogous to the pseudo-code below cannot be written:

<fo:block id="id519664" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
std::for_each(a.begin(), a.end(), 
	      bind(ll::for_each(), _1.begin(), _1.end(), protect(sum += _1)));
</fo:block>

Some aid for common special cases can be provided though.

The BLL defines two helper function object classes, 
<fo:inline font-family="monospace">call_begin</fo:inline> and <fo:inline font-family="monospace">call_end</fo:inline>, 
which wrap a call to the <fo:inline font-family="monospace">begin</fo:inline> and, respectively, 
<fo:inline font-family="monospace">end</fo:inline> functions of a container, and return the 
<fo:inline font-family="monospace">const_iterator</fo:inline> type of the container.

With these helper templates, the above code becomes:
<fo:block id="id519709" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
std::for_each(a.begin(), a.end(), 
	      bind(ll::for_each(), 
                   bind(call_begin(), _1), bind(call_end(), _1),
                        protect(sum += _1)));
</fo:block></fo:block></fo:block></fo:block><fo:block id="lambda.extending"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Extending return type deduction system</fo:marker><fo:block font-size="17.28pt">Extending return type deduction system</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">

In this section, we explain  how to extend the return type deduction system 
to cover user defined operators. 

In many cases this is not necessary, 
as the BLL defines default return types for operators.

For example, the default return type for all comparison operators is 
<fo:inline font-family="monospace">bool</fo:inline>, and as long as the user defined comparison operators 
have a bool return type, there is no need to write new specializations 
for the return type deduction classes.

Sometimes this cannot be avoided, though.

</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The overloadable user defined operators are either unary or binary. 

For each arity, there are two traits templates that define the 
return types of the different operators.

Hence, the return type system can be extended by providing more 
specializations for these templates.

The templates for unary functors are

<fo:inline font-family="monospace">
plain_return_type_1&lt;Action, A&gt;
</fo:inline>

and 

<fo:inline font-family="monospace">
return_type_1&lt;Action, A&gt;
</fo:inline>, and 

<fo:inline font-family="monospace">
plain_return_type_2&lt;Action, A, B&gt;
</fo:inline>

and 

<fo:inline font-family="monospace">
return_type_2&lt;Action, A, B&gt;
</fo:inline>

respectively for binary functors.

</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The first parameter (<fo:inline font-family="monospace">Action</fo:inline>) to all these templates 
is the <fo:inline font-style="italic">action</fo:inline> class, which specifies the operator. 

Operators with similar return type rules are grouped together into 
<fo:inline font-style="italic">action groups</fo:inline>, 
and only the action class and action group together define the operator 
unambiguously. 

As an example, the action type 
<fo:inline font-family="monospace">arithmetic_action&lt;plus_action&gt;</fo:inline> stands for 
<fo:inline font-family="monospace">operator+</fo:inline>. 

The complete listing of different action types is shown in 
<fo:basic-link internal-destination="table:actions">Table&#xA0;2, &#x201C;Action types&#x201D;</fo:basic-link>. 
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The latter parameters, <fo:inline font-family="monospace">A</fo:inline> in the unary case, 
or <fo:inline font-family="monospace">A</fo:inline> and <fo:inline font-family="monospace">B</fo:inline> in the binary case, 
stand for the argument types of the operator call. 

The two sets of templates, 
<fo:inline font-family="monospace">plain_return_type_<fo:inline font-style="italic" font-family="monospace">n</fo:inline></fo:inline> and 
<fo:inline font-family="monospace">return_type_<fo:inline font-style="italic" font-family="monospace">n</fo:inline></fo:inline> 
(<fo:inline font-style="italic" font-family="monospace">n</fo:inline> is 1 or 2) differ in the way how parameter types 
are presented to them.

For the former templates, the parameter types are always provided as 
non-reference types, and do not have const or volatile qualifiers.

This makes specializing easy, as commonly one specialization for each 
user defined operator, or operator group, is enough.

On the other hand, if a particular operator is overloaded for different 
cv-qualifications of the same argument types, 
and the return types of these overloaded versions differ, a more fine-grained control is needed.

Hence, for the latter templates, the parameter types preserve the 
cv-qualifiers, and are non-reference types as well. 
 
The downside is, that for an overloaded set of operators of the 
kind described above, one may end up needing up to 
16 <fo:inline font-family="monospace">return_type_2</fo:inline> specializations.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Suppose the user has overloaded the following operators for some user defined 
types <fo:inline font-family="monospace">X</fo:inline>, <fo:inline font-family="monospace">Y</fo:inline> and <fo:inline font-family="monospace">Z</fo:inline>:

<fo:block id="id520716" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
Z operator+(const X&amp;, const Y&amp;);
Z operator-(const X&amp;, const Y&amp;);
</fo:block>

Now, one can add a specialization stating, that if the left hand argument 
is of type <fo:inline font-family="monospace">X</fo:inline>, and the right hand one of type 
<fo:inline font-family="monospace">Y</fo:inline>, the return type of all such binary arithmetic 
operators is <fo:inline font-family="monospace">Z</fo:inline>:

<fo:block id="id351239" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
namespace boost { 
namespace lambda {
  
template&lt;class Act&gt; 
struct plain_return_type_2&lt;arithmetic_action&lt;Act&gt;, X, Y&gt; {
  typedef Z type;
};

}
}
</fo:block>

Having this specialization defined, BLL is capable of correctly 
deducing the return type of the above two operators.

Note, that the specializations must be in the same namespace, 
<fo:inline font-family="monospace">::boost::lambda</fo:inline>, with the primary template. 

For brevity, we do not show the namespace definitions in the examples below.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
It is possible to specialize on the level of an individual operator as well, 
in addition to providing a specialization for a group of operators. 
Say, we add a new arithmetic operator for argument types <fo:inline font-family="monospace">X</fo:inline> 
and <fo:inline font-family="monospace">Y</fo:inline>:

<fo:block id="id351277" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
X operator*(const X&amp;, const Y&amp;);
</fo:block>

Our first rule for all arithmetic operators specifies that the return 
type of this operator is <fo:inline font-family="monospace">Z</fo:inline>, 
which obviously is not the case.
Hence, we provide a new rule for the multiplication operator:

<fo:block id="id351293" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
template&lt;&gt; 
struct plain_return_type_2&lt;arithmetic_action&lt;multiply_action&gt;, X, Y&gt; {
  typedef X type;
};
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The specializations can define arbitrary mappings from the argument types 
to the return type. 

Suppose we have some mathematical vector type, templated on the element type:

<fo:block id="id351308" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
template &lt;class T&gt; class my_vector;
</fo:block>

Suppose the addition operator is defined between any two 
<fo:inline font-family="monospace">my_vector</fo:inline> instantiations, 
as long as the addition operator is defined between their element types. 

Furthermore, the element type of the resulting <fo:inline font-family="monospace">my_vector</fo:inline> 
is the same as the result type of the addition between the element types.

E.g., adding <fo:inline font-family="monospace">my_vector&lt;int&gt;</fo:inline> and 
<fo:inline font-family="monospace">my_vector&lt;double&gt;</fo:inline> results in 
<fo:inline font-family="monospace">my_vector&lt;double&gt;</fo:inline>.

The BLL has traits classes to perform the implicit built-in and standard 
type conversions between integral, floating point, and complex classes.

Using BLL tools, the addition operator described above can be defined as:

<fo:block id="id520757" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
template&lt;class A, class B&gt; 
my_vector&lt;typename return_type_2&lt;arithmetic_action&lt;plus_action&gt;, A, B&gt;::type&gt;
operator+(const my_vector&lt;A&gt;&amp; a, const my_vector&lt;B&gt;&amp; b)
{
  typedef typename 
    return_type_2&lt;arithmetic_action&lt;plus_action&gt;, A, B&gt;::type res_type;
  return my_vector&lt;res_type&gt;();
}
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
To allow BLL to deduce the type of <fo:inline font-family="monospace">my_vector</fo:inline> 
additions correctly, we can define:

<fo:block id="id520779" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
template&lt;class A, class B&gt; 
class plain_return_type_2&lt;arithmetic_action&lt;plus_action&gt;, 
                           my_vector&lt;A&gt;, my_vector&lt;B&gt; &gt; {
  typedef typename 
    return_type_2&lt;arithmetic_action&lt;plus_action&gt;, A, B&gt;::type res_type;
public:
  typedef my_vector&lt;res_type&gt; type;
};
</fo:block>
Note, that we are reusing the existing specializations for the 
BLL <fo:inline font-family="monospace">return_type_2</fo:inline> template, 
which require that the argument types are references. 
</fo:block><fo:block span="none"><fo:block id="table:actions" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;2.&#xA0;Action types</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">+</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">arithmetic_action&lt;plus_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">-</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">arithmetic_action&lt;minus_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">*</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">arithmetic_action&lt;multiply_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">/</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">arithmetic_action&lt;divide_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">%</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">arithmetic_action&lt;remainder_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">+</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">unary_arithmetic_action&lt;plus_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">-</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">unary_arithmetic_action&lt;minus_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">&amp;</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">bitwise_action&lt;and_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">|</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">bitwise_action&lt;or_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">~</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">bitwise_action&lt;not_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">^</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">bitwise_action&lt;xor_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">&lt;&lt;</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">bitwise_action&lt;leftshift_action_no_stream&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">&gt;&gt;</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">bitwise_action&lt;rightshift_action_no_stream&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">&amp;&amp;</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">logical_action&lt;and_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">||</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">logical_action&lt;or_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">!</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">logical_action&lt;not_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">&lt;</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">relational_action&lt;less_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">&gt;</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">relational_action&lt;greater_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">&lt;=</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">relational_action&lt;lessorequal_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">&gt;=</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">relational_action&lt;greaterorequal_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">==</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">relational_action&lt;equal_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">!=</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">relational_action&lt;notequal_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">+=</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">arithmetic_assignment_action&lt;plus_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">-=</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">arithmetic_assignment_action&lt;minus_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">*=</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">arithmetic_assignment_action&lt;multiply_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">/=</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">arithmetic_assignment_action&lt;divide_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">%=</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">arithmetic_assignment_action&lt;remainder_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">&amp;=</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">bitwise_assignment_action&lt;and_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">=|</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">bitwise_assignment_action&lt;or_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">^=</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">bitwise_assignment_action&lt;xor_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">&lt;&lt;=</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">bitwise_assignment_action&lt;leftshift_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">&gt;&gt;=</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">bitwise_assignment_action&lt;rightshift_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">++</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">pre_increment_decrement_action&lt;increment_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">--</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">pre_increment_decrement_action&lt;decrement_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">++</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">post_increment_decrement_action&lt;increment_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">--</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">post_increment_decrement_action&lt;decrement_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">&amp;</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">other_action&lt;address_of_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">*</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">other_action&lt;contents_of_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">,</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:inline font-family="monospace">other_action&lt;comma_action&gt;</fo:inline></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="id521347"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Practical considerations</fo:marker><fo:block font-size="17.28pt">Practical considerations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id521351"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Performance</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In theory, all overhead of using STL algorithms and lambda functors 
compared to hand written loops can be optimized away, just as the overhead 
from standard STL function objects and binders can.

Depending on the compiler, this can also be true in practice.
We ran two tests with the GCC 3.0.4 compiler on 1.5 GHz Intel Pentium 4.
The optimization flag -03 was used.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
In the first test we compared lambda functors against explicitly written 
function objects. 
We used both of these styles to define unary functions which multiply the
argument repeatedly by itself. 
We started with the identity function, going up to 
x<fo:inline font-size="75%" vertical-align="super">5</fo:inline>.
The expressions were called inside a <fo:inline font-family="monospace">std::transform</fo:inline> loop, 
reading the argument from one <fo:inline font-family="monospace">std::vector&lt;int&gt;</fo:inline> 
and placing the result into another.
The length of the vectors was 100 elements.
The running times are listed in 
<fo:basic-link internal-destination="table:increasing_arithmetic_test">Table&#xA0;3, &#x201C;Test 1CPU time of expressions with integer multiplication written as a lambda expression and as a traditional hand-coded function object class. 
The running times are expressed in arbitrary units.&#x201D;</fo:basic-link>.

We can observe that there is no significant difference between the
two approaches.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
In the second test we again used <fo:inline font-family="monospace">std::transform</fo:inline> to 
perform an operation to each element in a 100-element long vector.
This time the element type of the vectors was <fo:inline font-family="monospace">double</fo:inline>
and we started with very simple arithmetic expressions and moved to 
more complex ones.
The running times are listed in <fo:basic-link internal-destination="table:ll_vs_stl_test">Table&#xA0;4, &#x201C;Test 2CPU time of arithmetic expressions written as lambda 
expressions, as classic STL unnamed functions (using <fo:inline font-family="monospace">compose2</fo:inline>, <fo:inline font-family="monospace">bind1st</fo:inline> etc.) and as traditional hand-coded function object classes. 
Using BLL terminology, 
<fo:inline font-family="monospace">a</fo:inline> and <fo:inline font-family="monospace">b</fo:inline> are bound arguments in the expressions, and <fo:inline font-family="monospace">x</fo:inline> is open. 
All variables were of types <fo:inline font-family="monospace">double</fo:inline>.
The running times are expressed in arbitrary units.&#x201D;</fo:basic-link>.

Here, we also included classic STL style unnamed functions into tests.
We do not show these expressions, as they get rather complex. 
For example, the
last expression in <fo:basic-link internal-destination="table:ll_vs_stl_test">Table&#xA0;4, &#x201C;Test 2CPU time of arithmetic expressions written as lambda 
expressions, as classic STL unnamed functions (using <fo:inline font-family="monospace">compose2</fo:inline>, <fo:inline font-family="monospace">bind1st</fo:inline> etc.) and as traditional hand-coded function object classes. 
Using BLL terminology, 
<fo:inline font-family="monospace">a</fo:inline> and <fo:inline font-family="monospace">b</fo:inline> are bound arguments in the expressions, and <fo:inline font-family="monospace">x</fo:inline> is open. 
All variables were of types <fo:inline font-family="monospace">double</fo:inline>.
The running times are expressed in arbitrary units.&#x201D;</fo:basic-link> written with
classic STL tools contains 7 calls to <fo:inline font-family="monospace">compose2</fo:inline>, 
8 calls to <fo:inline font-family="monospace">bind1st</fo:inline>
and altogether 14 constructor invocations for creating 
<fo:inline font-family="monospace">multiplies</fo:inline>, <fo:inline font-family="monospace">minus</fo:inline> 
and <fo:inline font-family="monospace">plus</fo:inline> objects.

In this test the BLL expressions are a little slower (roughly 10% on average,
less than 14% in all cases)
than the corresponding hand-written function objects.
The performance hit is a bit greater with classic STL expressions,
up to 27% for the simplest expressios.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The tests suggest that the BLL does not introduce a loss of performance 
compared to STL function objects.  
With a reasonable optimizing compiler, one should expect the performance characteristics be comparable to using classic STL.
Moreover, with simple expressions the performance can be expected to be close
to that of explicitly written function objects.



Note however, that evaluating a lambda functor consist of a sequence of calls to small functions that are declared inline. 
If the compiler fails to actually expand these functions inline, 
the performance can suffer. 
The running time can more than double if this happens.
Although the above tests do not include such an expression, we have experienced
this for some seemingly simple expressions.


<fo:block span="none"><fo:block id="table:increasing_arithmetic_test" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;3.&#xA0;Test 1CPU time of expressions with integer multiplication written as a lambda expression and as a traditional hand-coded function object class. 
The running times are expressed in arbitrary units.</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">lambda expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">hand-coded function object</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>x</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>240</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>230</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>x*x</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>340</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>350</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>x*x*x</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>770</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>760</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>x*x*x*x</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>1180</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>1210</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>x*x*x*x*x</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>1950</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>1910</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block span="none"><fo:block id="table:ll_vs_stl_test" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;4.&#xA0;Test 2CPU time of arithmetic expressions written as lambda 
expressions, as classic STL unnamed functions (using <fo:inline font-family="monospace">compose2</fo:inline>, <fo:inline font-family="monospace">bind1st</fo:inline> etc.) and as traditional hand-coded function object classes. 
Using BLL terminology, 
<fo:inline font-family="monospace">a</fo:inline> and <fo:inline font-family="monospace">b</fo:inline> are bound arguments in the expressions, and <fo:inline font-family="monospace">x</fo:inline> is open. 
All variables were of types <fo:inline font-family="monospace">double</fo:inline>.
The running times are expressed in arbitrary units.</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">lambda expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">classic STL expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">hand-coded function object</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>330</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>370</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>290</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>-ax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>350</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>370</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>310</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ax-(a+x)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>470</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>500</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>420</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>(ax-(a+x))(a+x)</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>620</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>670</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>600</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>((ax) - (a+x))(bx - (b+x))(ax - (b+x))(bx - (a+x))</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>1660</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>1660</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>1460</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Some additional performance testing with an earlier version of the
library is described
<fo:basic-link internal-destination="cit:jarvi:00">[J&#xE4;r00]</fo:basic-link>.
</fo:block></fo:block><fo:block id="id521682"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">About compiling</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The BLL uses templates rather heavily, performing numerous recursive instantiations of the same templates. 
This has (at least) three implications:
<fo:list-block id="id521691" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id521692" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
While it is possible to write incredibly complex lambda expressions, it probably isn't a good idea. 
Compiling such expressions may end up requiring a lot of memory 
at compile time, and being slow to compile.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521699" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
The types of lambda functors that result from even the simplest lambda expressions are cryptic. 
Usually the programmer doesn't need to deal with the lambda functor types at all, but in the case of an error in a lambda expression, the compiler usually outputs the types of the lambda functors involved. 
This can make the error messages very long and difficult to interpret, particularly if the compiler outputs the whole chain of template instantiations.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521711" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
The C++ Standard suggests a template nesting level of 17 to help detect infinite recursion. 
Complex lambda templates can easily exceed this limit. 
Most compilers allow a greater number of nested templates, but commonly require the limit explicitly increased with a command line argument.
</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="id521720"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Portability</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The BLL works with the following compilers, that is, the compilers are capable of compiling the test cases that are included with the BLL:

      <fo:list-block id="id521728" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id521729" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>GCC 3.0.4
	</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521732" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>KCC 4.0f with EDG 2.43.1
	</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521735" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>GCC 2.96 (fails with one test case, the <fo:inline font-family="monospace">exception_test.cpp</fo:inline> results in an internal compiler error.
)

	</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id521745"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Test coverage</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following list describes the test files included and the features that each file covers:

<fo:list-block id="id521753" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id521754" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">bind_tests_simple.cpp</fo:inline> : Bind expressions of different arities and types of target functions: function pointers, function objects and member functions.
Function composition with bind expressions.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521765" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">bind_tests_simple_function_references.cpp</fo:inline> :
Repeats all tests from <fo:inline font-family="monospace">bind_tests_simple.cpp</fo:inline> where the target function is a function pointer, but uses function references instead.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521782" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">bind_tests_advanced.cpp</fo:inline> : Contains tests for nested bind expressions, <fo:inline font-family="monospace">unlambda</fo:inline>, <fo:inline font-family="monospace">protect</fo:inline>, <fo:inline font-family="monospace">const_parameters</fo:inline> and <fo:inline font-family="monospace">break_const</fo:inline>.
Tests passing lambda functors as actual arguments to other lambda functors, currying, and using the <fo:inline font-family="monospace">sig</fo:inline> template to specify the return type of a function object.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521823" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">operator_tests_simple.cpp</fo:inline> :
Tests using all operators that are overloaded for lambda expressions, that is, unary and binary arithmetic, 
bitwise, 
comparison, 
logical,
increment and decrement, 
compound, 
assignment,
subscrict, 
address of,
dereference, and comma operators.
The streaming nature of shift operators is tested, as well as pointer arithmetic with plus and minus operators.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521838" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">member_pointer_test.cpp</fo:inline> : The pointer to member operator is complex enough to warrant a separate test file.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521848" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">control_structures.cpp</fo:inline> :
Tests for the looping and if constructs.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521857" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">switch_construct.cpp</fo:inline> :
Includes tests for all supported arities of the switch statement, both with and without the default case.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521867" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">exception_test.cpp</fo:inline> :
Includes tests for throwing exceptions and for try/catch constructs with varying number of catch blocks.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521877" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">constructor_tests.cpp</fo:inline> :
Contains tests for <fo:inline font-family="monospace">constructor</fo:inline>, <fo:inline font-family="monospace">destructor</fo:inline>, <fo:inline font-family="monospace">new_ptr</fo:inline>, <fo:inline font-family="monospace">delete_ptr</fo:inline>, <fo:inline font-family="monospace">new_array</fo:inline> and <fo:inline font-family="monospace">delete_array</fo:inline>.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521920" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">cast_test.cpp</fo:inline> : Tests for the four cast expressions, as well as <fo:inline font-family="monospace">typeid</fo:inline> and <fo:inline font-family="monospace">sizeof</fo:inline>.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521940" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">extending_return_type_traits.cpp</fo:inline> : Tests extending the return type deduction system for user defined types.
Contains several user defined operators and the corresponding specializations for the return type deduction templates.
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521953" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">is_instance_of_test.cpp</fo:inline> : Includes tests for an internally used traits template, which can detect whether a given type is an instance of a certain template or not. 
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id521964" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">bll_and_function.cpp</fo:inline> :
Contains tests for using <fo:inline font-family="monospace">boost::function</fo:inline> together with lambda functors.
</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id521979"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Relation to other Boost libraries</fo:marker><fo:block font-size="17.28pt">Relation to other Boost libraries</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id521983"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Boost Function</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sometimes it is convenient to store lambda functors in variables.
However, the types of even the simplest lambda functors are long and unwieldy, and it is in general unfeasible to declare variables with lambda functor types.
<fo:inline font-style="italic">The Boost Function library</fo:inline><fo:basic-link internal-destination="cit:boost::function">[function]</fo:basic-link> defines wrappers for arbitrary function objects, for example 
lambda functors; and these wrappers have types that are easy to type out.

For example:

<fo:block id="id522004" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
boost::function&lt;int(int, int)&gt; f = _1 + _2;
boost::function&lt;int&amp;(int&amp;)&gt; g = (_1 += 10);
int i = 1, j = 2;
f(i, j); // returns 3
g(i);    // sets i to = 11;
</fo:block>

The return and parameter types of the wrapped function object must be written explicilty as the template argument to the wrapper template <fo:inline font-family="monospace">boost::function</fo:inline>; even when lambda functors, which otherwise have generic parameters, are wrapped.
Wrapping a function object with <fo:inline font-family="monospace">boost::function</fo:inline> introduces a performance cost comparable to virtual function dispatch, though virtual functions are not actually used.

Note that storing lambda functors inside <fo:inline font-family="monospace">boost::function</fo:inline> 
introduces a danger.
Certain types of lambda functors may store references to the bound 
arguments, instead as taking copies of the arguments of the lambda expression.
When temporary lambda functor objects are used 
in STL algorithm invocations this is always safe, as the lambda functor gets 
destructed immediately after the STL algortihm invocation is completed.

However, a lambda functor wrapped inside <fo:inline font-family="monospace">boost::function</fo:inline> 
may continue to exist longer, creating the possibility of dangling references.
For example:

<fo:block id="id522056" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int* sum = new int();
*sum = 0;
boost::function&lt;int&amp;(int)&gt; counter = *sum += _1;
counter(5); // ok, *sum = 5;
delete sum; 
counter(3); // error, *sum does not exist anymore
</fo:block></fo:block></fo:block><fo:block id="id522068"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Boost Bind</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-style="italic">The Boost Bind</fo:inline><fo:basic-link internal-destination="cit:boost::bind">[bind]</fo:basic-link> library has partially overlapping functionality with the BLL. 
Basically, the Boost Bind library (BB in the sequel) implements the bind expression part of BLL.
There are, however, some semantical differerences.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The BLL and BB evolved separately, and have different implementations. 
This means that the bind expressions from the BB cannot be used within 
bind expressions, or within other type of lambda expressions, of the BLL.
The same holds for using BLL bind expressions in the BB.
The libraries can coexist, however, as
the names of the BB library are in <fo:inline font-family="monospace">boost</fo:inline> namespace, 
whereas the BLL names are in <fo:inline font-family="monospace">boost::lambda</fo:inline> namespace.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The BLL requires a compiler that is reasonably conformant to the 
C++ standard, whereas the BB library is more portable, and works with 
a larger set of compilers. 
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The following two sections describe what are the semantic differences 
between the bind expressions in BB and BLL.
</fo:block><fo:block id="id522114"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">First argument of bind expression</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block>

In BB the first argument of the bind expression, the target function, 
is treated differently from the other arguments, 
as no argument substitution takes place within that argument.
In BLL the first argument is not a special case in this respect.

For example:

<fo:block id="id522124" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
template&lt;class F&gt;
int foo(const F&amp; f) {
  int x;
  ..
  bind(f, _1)(x);
  ...
}
</fo:block><fo:block id="id522133" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int bar(int, int);
nested(bind(bar, 1, _1));
</fo:block>

The bind expression inside <fo:inline font-family="monospace">foo</fo:inline> becomes:
<fo:block id="id522146" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bind(bind(bar, 1, _1), _1)(x)
</fo:block>

The BLL interpretes this as:
<fo:block id="id522153" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bar(1, x)(x)
</fo:block>
whereas the BB library as
<fo:block id="id522160" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bar(1, x)
</fo:block>

To get this functionality in BLL, the bind expression inside the <fo:inline font-family="monospace">foo</fo:inline> function can be written as:
<fo:block id="id522173" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bind(unlambda(f), _1)(x);
</fo:block>
as explained in <fo:basic-link internal-destination="lambda.unlambda">the section called &#x201C;Unlambda&#x201D;</fo:basic-link>. 

</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The BB library supports up to nine placeholders, while the BLL 
defines only three placeholders. 
The rationale for not providing more, is that the highest arity of the
function objects accepted by any STL algorithm is two. 
The placeholder count is easy to increase in the BB library.
In BLL it is possible, but more laborous.
The BLL currently passes the actual arguments to the lambda functors
internally just as they are and does not wrap them inside a tuple object.
The reason for this is that some widely used compilers are not capable
of optimizing the intermediate tuple objects away. 
The creation of the intermediate tuples would cause a significant
performance hit, particularly for the simplest (and thus the most common) 
lambda functors.  
We are working on a hybrid approach, which will allow more placeholders
but not compromise the performance of simple lambda functors.
</fo:block></fo:block></fo:block><fo:block id="id522202"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Contributors</fo:marker><fo:block font-size="17.28pt">Contributors</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block>

The main body of the library was written by Jaakko J&#xE4;rvi and Gary Powell.
We've got outside help, suggestions and ideas from Jeremy Siek, Peter Higley, Peter Dimov, Valentin Bonnard, William Kempf.
We would particularly like to mention Joel de Guzmann and his work with 
Phoenix which has influenced BLL significantly, making it considerably simpler 
to extend the library with new features.

</fo:block><fo:page-sequence hyphenate="true" master-reference="back" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Rationale for some of the design decisions</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Rationale for some of the design decisions</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="id522222"><fo:block><fo:block><fo:block margin-left="-4pc" font-size="24.8832pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Appendix&#xA0;A.&#xA0;Rationale for some of the design decisions</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="lambda.why_weak_arity"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">
Lambda functor arity
</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The highest placeholder index in a lambda expression determines the arity of the resulting function object.
However, this is just the minimal arity, as the function object can take arbitrarily many arguments; those not needed are discarded.
Consider the two bind expressions and their invocations below:

<fo:block id="id522240" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bind(g, _3, _3, _3)(x, y, z); 
bind(g, _1, _1, _1)(x, y, z); 
</fo:block>

This first line discards arguments <fo:inline font-family="monospace">x</fo:inline> and
<fo:inline font-family="monospace">y</fo:inline>, and makes the call:
<fo:block id="id522259" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
g(z, z, z) 
</fo:block>
whereas the second line discards arguments <fo:inline font-family="monospace">y</fo:inline> and
<fo:inline font-family="monospace">z</fo:inline>, and calls:
<fo:block id="id522277" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
g(x, x, x)
</fo:block>
In earlier versions of the library, the latter line resulted in a compile 
time error.

This is basically a tradeoff between safety and flexibility, and the issue
was extensively discussed during the Boost review period of the library.
The main points for the <fo:inline font-style="italic">strict arity</fo:inline> checking
was that it might
catch a programming error at an earlier time and that a lambda expression that
explicitly discards its arguments is easy to write:
<fo:block id="id522294" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
(_3, bind(g, _1, _1, _1))(x, y, z);
</fo:block>
This lambda expression takes three arguments.
The left-hand argument of the comma operator does nothing, and as comma 
returns the result of evaluating the right-hand argument we end up with 
the call
<fo:inline font-family="monospace">g(x, x, x)</fo:inline>
even with the strict arity.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The main points against the strict arity checking were that the need to 
discard arguments is commonplace, and should therefore be straightforward, 
and that strict arity checking does not really buy that much more safety, 
particularly as it is not symmetric.
For example, if the programmer wanted to write the expression 
<fo:inline font-family="monospace">_1 + _2</fo:inline> but mistakenly wrote <fo:inline font-family="monospace">_1 + 2</fo:inline>, 
with strict arity checking, the complier would spot the error.
However, if the erroneous expression was <fo:inline font-family="monospace">1 + _2</fo:inline> instead,
the error would go unnoticed.
Furthermore, weak arity checking simplifies the implementation a bit.
Following the recommendation of the Boost review, strict arity checking 
was dropped.
</fo:block></fo:block></fo:flow></fo:page-sequence><fo:block id="id522341" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em"><fo:block><fo:block><fo:block margin-left="-4pc" font-size="24.8832pt" font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Bibliography</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="cit:stepanov:94" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[STL94] <fo:inline>A. A. Stepanov and M. Lee. </fo:inline><fo:inline><fo:inline font-style="italic">The Standard Template Library</fo:inline>. </fo:inline><fo:inline>Hewlett-Packard Laboratories. </fo:inline><fo:inline>1994. </fo:inline><fo:inline><fo:basic-link external-destination="http://www.hpl.hp.com/techreports">www.hpl.hp.com/techreports</fo:basic-link>. </fo:inline></fo:block><fo:block id="cit:sgi:02" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[SGI02] <fo:inline><fo:inline font-style="italic">The SGI Standard Template Library</fo:inline>. </fo:inline><fo:inline>2002. </fo:inline><fo:inline><fo:basic-link external-destination="http://www.sgi.com/tech/stl/">www.sgi.com/tech/stl/</fo:basic-link>. </fo:inline></fo:block><fo:block id="cit:c++:98" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[C++98] <fo:inline><fo:inline font-style="italic">International Standard, Programming Languages &#x2013; C++</fo:inline>. </fo:inline><fo:inline>ISO/IEC:14882. </fo:inline><fo:inline>1998. </fo:inline></fo:block><fo:block id="cit:jarvi:99" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[J&#xE4;r99] <fo:inline><fo:inline>Jaakko J&#xE4;rvi. </fo:inline><fo:inline><fo:inline font-style="italic">C++ Function Object Binders Made Easy</fo:inline>. </fo:inline>. </fo:inline><fo:inline><fo:inline font-style="italic">Lecture Notes in Computer Science</fo:inline>. </fo:inline><fo:inline>1977. </fo:inline><fo:inline>Springer. </fo:inline><fo:inline>2000. </fo:inline></fo:block><fo:block id="cit:jarvi:00" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[J&#xE4;r00] <fo:inline>Jaakko J&#xE4;rvi. </fo:inline><fo:inline>Gary Powell. </fo:inline><fo:inline><fo:inline font-style="italic">The Lambda Library : Lambda Abstraction in C++</fo:inline>. </fo:inline><fo:inline>Turku Centre for Computer Science. </fo:inline><fo:inline>Technical Report . </fo:inline><fo:inline>378. </fo:inline><fo:inline>2000. </fo:inline><fo:inline><fo:basic-link external-destination="http://www.tucs.fi/Publications/techreports/TR378.php">www.tucs.fi/publications</fo:basic-link>. </fo:inline></fo:block><fo:block id="cit:jarvi:01" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[J&#xE4;r01] <fo:inline>Jaakko J&#xE4;rvi. </fo:inline><fo:inline>Gary Powell. </fo:inline><fo:inline><fo:inline font-style="italic">The Lambda Library : Lambda Abstraction in C++</fo:inline>. </fo:inline><fo:inline><fo:inline>Second  Workshop on C++ Template Programming. </fo:inline><fo:inline>Tampa Bay, OOPSLA'01. </fo:inline>. </fo:inline><fo:inline>2001. </fo:inline><fo:inline><fo:basic-link external-destination="http://www.oonumerics.org/tmpw01/">www.oonumerics.org/tmpw01/</fo:basic-link>. </fo:inline></fo:block><fo:block id="cit:jarvi:03" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[J&#xE4;r03] <fo:inline><fo:inline>Jaakko J&#xE4;rvi. </fo:inline><fo:inline>Gary Powell. </fo:inline><fo:inline>Andrew Lumsdaine. </fo:inline><fo:inline><fo:inline font-style="italic">The Lambda Library : unnamed functions in C++</fo:inline>. </fo:inline>. </fo:inline><fo:inline><fo:inline font-style="italic">Software - Practice and Expreience</fo:inline>. </fo:inline><fo:inline>33:259-291. </fo:inline><fo:inline>2003. </fo:inline></fo:block><fo:block id="cit:boost::tuple" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[tuple] <fo:inline><fo:inline font-style="italic">The Boost Tuple Library</fo:inline>. </fo:inline><fo:inline><fo:basic-link external-destination="http://www.boost.org/libs/tuple/doc/tuple_users_guide.html">www.boost.org/libs/tuple/doc/tuple_users_guide.html</fo:basic-link>. </fo:inline><fo:inline>2002. </fo:inline></fo:block><fo:block id="cit:boost::type_traits" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[type_traits] <fo:inline><fo:inline font-style="italic">The Boost type_traits</fo:inline>. </fo:inline><fo:inline><fo:basic-link external-destination="http://www.boost.org/libs/type_traits/index.htm">www.boost.org/libs/type_traits/</fo:basic-link>. </fo:inline><fo:inline>2002. </fo:inline></fo:block><fo:block id="cit:boost::ref" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[ref] <fo:inline><fo:inline font-style="italic">Boost ref</fo:inline>. </fo:inline><fo:inline><fo:basic-link external-destination="http://www.boost.org/libs/bind/ref.html">www.boost.org/libs/bind/ref.html</fo:basic-link>. </fo:inline><fo:inline>2002. </fo:inline></fo:block><fo:block id="cit:boost::bind" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[bind] <fo:inline><fo:inline font-style="italic">Boost Bind Library</fo:inline>. </fo:inline><fo:inline><fo:basic-link external-destination="http://www.boost.org/libs/bind/bind.html">www.boost.org/libs/bind/bind.html</fo:basic-link>. </fo:inline><fo:inline>2002. </fo:inline></fo:block><fo:block id="cit:boost::function" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[function] <fo:inline><fo:inline font-style="italic">Boost Function Library</fo:inline>. </fo:inline><fo:inline><fo:basic-link external-destination="http://www.boost.org/libs/function/">www.boost.org/libs/function/</fo:basic-link>. </fo:inline><fo:inline>2002. </fo:inline></fo:block><fo:block id="cit:fc++" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[fc++] <fo:inline><fo:inline font-style="italic">The FC++ library: Functional Programming in C++</fo:inline>. </fo:inline><fo:inline>Yannis Smaragdakis. </fo:inline><fo:inline>Brian McNamara. </fo:inline><fo:inline><fo:basic-link external-destination="http://www.cc.gatech.edu/~yannis/fc++/">www.cc.gatech.edu/~yannis/fc++/</fo:basic-link>. </fo:inline><fo:inline>2002. </fo:inline></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Program_options</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Program_options</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="program_options"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Boost.Program_options</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Vladimir Prus</fo:block></fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2002-2004 Vladimir Prus</fo:block><fo:block><fo:block id="id522699"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Distributed under the Boost Software License, Version 1.0.
      (See accompanying file <fo:inline font-family="monospace">LICENSE_1_0.txt</fo:inline> or copy at 
      <fo:basic-link external-destination="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</fo:basic-link>)
      </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id522718"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="17.28pt">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The program_options library allows program developers to obtain
    <fo:inline font-style="italic">program options</fo:inline>, that is (name, value) pairs from the user,
    via conventional methods such as command line and config file.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Why would you use such a library, and why is it better than parsing
    your command line by straightforward hand-written code?
      <fo:list-block id="id522736" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id522737" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>It's easier. The syntax for declaring options is simple, and
          the library itself is small. Things like conversion of option values to
          desired type and storing into program variables are handled
          automatically.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id522745" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Error reporting is better. All the problems with the command line are
            reported, while hand-written code can just misparse the input. In
            addition, the usage message can be automatically generated, to
            avoid falling out of sync with the real list of options.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id522753" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Options can be read from anywhere. Sooner or later the command
          line will be not enough for your users, and you'll want config files
          or maybe even environment variables. These can be added without significant 
          effort on your part.
          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Now let's see some examples of the library usage in the <fo:basic-link internal-destination="program_options.tutorial">the section called &#x201C;Tutorial&#x201D;</fo:basic-link>.
    </fo:block></fo:block><fo:block id="program_options.tutorial"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Tutorial</fo:marker><fo:block font-size="17.28pt">Tutorial</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In this section, we'll take a look at the most common usage scenarios
  of the program_options library, starting with the simplest one. The examples
  show only the interesting code parts, but the complete programs can be found
  in the "BOOST_ROOT/libs/program_options/example" directory. Through all the
  examples, we'll assume that the following namespace alias is in effect:
<fo:block id="id522792" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">namespace po = boost::program_options;</fo:block></fo:block><fo:block id="id522798"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Getting Started</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The first example is the simplest possible: it only handles two
    options. Here's the source code (the full program is in
    "example/first.cpp"):

<fo:block id="id522806" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
// Declare the supported options.
po::options_description desc("Allowed options");
desc.add_options()
    ("help", "produce help message")
    ("compression", po::value&lt;int&gt;(), "set compression level")
;

po::variables_map vm;
po::store(po::parse_command_line(ac, av, desc), vm);
po::notify(vm);    

if (vm.count("help")) {
    cout &lt;&lt; desc &lt;&lt; "\n";
    return 1;
}

if (vm.count("compression")) {
    cout &lt;&lt; "Compression level was set to " 
 &lt;&lt; vm["compression"].as&lt;int&gt;() &lt;&lt; ".\n";
} else {
    cout &lt;&lt; "Compression level was not set.\n";
}
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">We start by declaring all allowed options using the
    <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> class. The <fo:inline font-family="monospace">add_options</fo:inline> method of that
    class returns a special proxy object that defines
    <fo:inline font-family="monospace">operator()</fo:inline>. Calls to that operator actually declare
    options. The parameters are option name, information about value, and option
    description. In this example, the first option has no value, and the second
    one has a value of type <fo:inline font-family="monospace">int</fo:inline>.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">After that, an object of class <fo:inline font-family="monospace">variables_map</fo:inline> is
    declared. That class is intended to store values of options, and can store
    values of arbitrary types. Next, the calls to <fo:inline font-family="monospace">store</fo:inline>,
    <fo:inline font-family="monospace">parse_command_line</fo:inline> and <fo:inline font-family="monospace">notify</fo:inline> functions cause
    <fo:inline font-family="monospace">vm</fo:inline> to contain all the options found on the command
    line.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">And now, finally, we can use the options as we like. The
    <fo:inline font-family="monospace">variables_map</fo:inline> class can be used just like
    <fo:inline font-family="monospace">std::map</fo:inline>, except that values stored there must be retrieved
    with the <fo:inline font-family="monospace">as</fo:inline> method shown above. (If the type specified in the
    call to the <fo:inline font-family="monospace">as</fo:inline> method is different from the actually stored
    type, an exception is thrown.)
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It's now a good time to try compiling the code yourself, but if
    you're not yet ready, here's an example session:
<fo:block id="id522925" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
$bin/gcc/debug/first
Compression level was not set.
$bin/gcc/debug/first --help
Allowed options:
  --help                 : produce help message
  --compression arg      : set compression level

$bin/gcc/debug/first --compression 10
Compression level was set to 10.
    </fo:block></fo:block></fo:block><fo:block id="id522935"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Option Details</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An option value, surely, can have other types than <fo:inline font-family="monospace">int</fo:inline>, and
  can have other interesting properties, which we'll discuss right now. The
  complete version of the code snipped below can be found in
  "example/options_description.cpp".</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Imagine we're writing a compiler. It should take the optimization
    level, a number of include paths, and a number of input files, and perform some
    interesting work. Let's describe the options:
    <fo:block id="id522957" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
int opt;
po::options_description desc("Allowed options");
desc.add_options()
    ("help", "produce help message")
    ("optimization", po::value&lt;int&gt;(&amp;opt)-&gt;default_value(10), 
  "optimization level")
    ("include-path,I", po::value&lt; vector&lt;string&gt; &gt;(), 
  "include path")
    ("input-file", po::value&lt; vector&lt;string&gt; &gt;(), "input file")
;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The "--help" option should be familiar from the previous example. 
    It's a good idea to have this option in all cases.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The "optimization" option shows two new features. First, we specify
    the address of the variable(<fo:inline font-family="monospace">&amp;opt</fo:inline>). After storing values, that
    variable will have the value of the option. Second, we specify a default
    value of 10, which will be used if no value is specified by the user.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The "include-path" option is an example of the only case where
    the interface of the <fo:inline font-family="monospace">options_description</fo:inline> class serves only one
    source -- the command line. Users typically like to use short option names
    for common options, and the "include-path,I" name specifies that short
    option name is "I". So, both "--include-path" and "-I" can be used.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The "input-file" option specifies the list of files to
    process. That's okay for a start, but, of course, writing something like:
    <fo:block id="id523010" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
compiler --input-file=a.cpp
    </fo:block>
    is a little non-standard, compared with
    <fo:block id="id523018" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
compiler a.cpp
    </fo:block>
    We'll address this in a moment.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The command line tokens which have no option name, as above, are
    called "positional options" by this library. They can be handled
    too. With a little help from the user, the library can decide that "a.cpp"
    really means the same as "--input-file=a.cpp". Here's the additional code
    we need:
    <fo:block id="id523032" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
po::positional_options_description p;
p.add("input-file", -1);

po::variables_map vm;
po::store(po::command_line_parser(ac, av).
          options(desc).positional(p).run(), vm);
po::notify(vm);
    </fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The first two lines say that all positional options should be translated
    into "input-file" options. Also note that we use the
    command_line_parser class to parse the command
    line, not the <fo:basic-link internal-destination="parse_command_line">parse_command_line</fo:basic-link>
    function. The latter is a convenient wrapper for simple cases, but now we
    need to pass additional information.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">By now, all options are described and parsed. We'll save ourselves the
      trouble of implementing the rest of the compiler logic and only print the
      options:
    <fo:block id="id523060" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
if (vm.count("include-path"))
{
    cout &lt;&lt; "Include paths are: " 
         &lt;&lt; vm["include-path"].as&lt; vector&lt;string&gt; &gt;() &lt;&lt; "\n";
}

if (vm.count("input-file"))
{
    cout &lt;&lt; "Input files are: " 
         &lt;&lt; vm["input-file"].as&lt; vector&lt;string&gt; &gt;() &lt;&lt; "\n";
}

cout &lt;&lt; "Optimization level is " &lt;&lt; opt &lt;&lt; "\n";                
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Here's an example session:
    <fo:block id="id523075" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
$bin/gcc/debug/options_description --help
Usage: options_description [options]
Allowed options:
  --help                 : produce help message
  --optimization arg     : optimization level
  -I [ --include-path ] arg : include path
  --input-file arg       : input file
$bin/gcc/debug/options_description
Optimization level is 10
$bin/gcc/debug/options_description --optimization 4 -I foo a.cpp
Include paths are: foo
Input files are: a.cpp
Optimization level is 4
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Oops, there's a slight problem. It's still possible to specify the
    "--input-file" option, and usage message says so, which can be confusing
    for the user. It would be nice to hide this information, but let's wait
    for the next example.
  </fo:block></fo:block><fo:block id="id523095"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Multiple Sources</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It's quite likely that specifying all options to our compiler on the
    command line will annoy users. What if a user installs a new library and
    wants to always pass an additional command line element? What if he has
    made some choices which should be applied on every run? It's desirable to
    create a config file with common settings which will be used together with
    the command line.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Of course, there will be a need to combine the values from command
    line and config file. For example, the optimization level specified on the
    command line should override the value from the config file. On the other
    hand, include paths should be combined.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Let's see the code now. The complete program is in
      "examples/multiple_sources.cpp". The option definition has two interesting
      details. First, we declare several instances of the
      <fo:inline font-family="monospace">options_description</fo:inline> class. The reason is that, in general,
      not all options are alike. Some options, like "input-file" above, should
      not be presented in an automatic help message. Some options make sense only
      in the config file. Finally, it's nice to have some structure in the help message,
      not just a long list of options. Let's declare several option groups:
      <fo:block id="id523133" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
// Declare a group of options that will be 
// allowed only on command line
po::options_description generic("Generic options");
generic.add_options()
    ("version,v", "print version string")
    ("help", "produce help message")    
    ;
    
// Declare a group of options that will be 
// allowed both on command line and in
// config file
po::options_description config("Configuration");
config.add_options()
    ("optimization", po::value&lt;int&gt;(&amp;opt)-&gt;default_value(10), 
          "optimization level")
    ("include-path,I", 
         po::value&lt; vector&lt;string&gt; &gt;()-&gt;composing(), 
         "include path")
    ;

// Hidden options, will be allowed both on command line and
// in config file, but will not be shown to the user.
po::options_description hidden("Hidden options");
hidden.add_options()
    ("input-file", po::value&lt; vector&lt;string&gt; &gt;(), "input file")
    ;        
</fo:block>
      Note the call to the <fo:inline font-family="monospace">composing</fo:inline> method in the declaration of the
      "include-path" option. It tells the library that values from different sources
      should be composed together, as we'll see shortly.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">    
      The <fo:inline font-family="monospace">add</fo:inline> method of the <fo:inline font-family="monospace">options_description</fo:inline>
      class can be used to further group the options:
      <fo:block id="id523178" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
po::options_description cmdline_options;
cmdline_options.add(generic).add(config).add(hidden);

po::options_description config_file_options;
config_file_options.add(config).add(hidden);

po::options_description visible("Allowed options");
visible.add(generic).add(config);
      </fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The parsing and storing of values follows the usual pattern, except that
      we additionally call parse_config_file, and
      call the <fo:basic-link internal-destination="id281355">store</fo:basic-link> function twice. But what
      happens if the same value is specified both on the command line and in
      config file? Usually, the value stored first is preferred. This is what
      happens for the "--optimization" option. For "composing" options, like
      "include-file", the values are merged.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Here's an example session:
<fo:block id="id523207" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
$bin/gcc/debug/multiple_sources
Include paths are: /opt
Optimization level is 1
$bin/gcc/debug/multiple_sources --help
Allows options:

Generic options:
  -v [ --version ]       : print version string
  --help                 : produce help message

Configuration:
  --optimization n       : optimization level
  -I [ --include-path ] path : include path

$bin/gcc/debug/multiple_sources --optimization=4 -I foo a.cpp b.cpp
Include paths are: foo /opt
Input files are: a.cpp b.cpp
Optimization level is 4
</fo:block>
      The first invocation uses values from the configuration file. The second
      invocation also uses values from command line. As we see, the include
      paths on the command line and in the configuration file are merged,
      while optimization is taken from the command line.
    </fo:block></fo:block></fo:block><fo:block id="program_options.overview"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Library Overview</fo:marker><fo:block font-size="17.28pt">Library Overview</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In the tutorial section, we saw several examples of library usage.
    Here we will describe the overall library design including the primary
    components and their function.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The library has three main components:
    <fo:list-block id="id523247" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id523248" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The options description component, which describes the allowed options
          and what to do with the values of the options.
        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id523254" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The parsers component, which uses this information to find option names
          and values in the input sources and return them. 
        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id523260" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The storage component, which provides the
          interface to access the value of an option. It also converts the string
          representation of values that parsers return into desired C++ types.
        </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To be a little more concrete, the <fo:inline font-family="monospace">options_description</fo:inline>
  class is from the options description component, the
  <fo:inline font-family="monospace">parse_command_line</fo:inline> function is from the parsers component, and the
  <fo:inline font-family="monospace">variables_map</fo:inline> class is from the storage component. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In the tutorial we've learned how those components can be used by the
    <fo:inline font-family="monospace">main</fo:inline> function to parse the command line and config
    file. Before going into the details of each component, a few notes about
    the world outside of <fo:inline font-family="monospace">main</fo:inline>.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    For that outside world, the storage component is the most important. It
    provides a class which stores all option values and that class can be
    freely passed around your program to modules which need access to the
    options. All the other components can be used only in the place where
    the actual parsing is the done.  However, it might also make sense for the
    individual program modules to describe their options and pass them to the
    main module, which will merge all options. Of course, this is only
    important when the number of options is large and declaring them in one
    place becomes troublesome.
  </fo:block><fo:block id="id523322"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Options Description Component</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The options description component has three main classes:
      <fo:basic-link internal-destination="option_description">option_description</fo:basic-link>, <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> and <fo:basic-link internal-destination="options_description">options_description</fo:basic-link>. The
      first two together describe a single option. The <fo:basic-link internal-destination="option_description">option_description</fo:basic-link>
      class contains the option's name, description and a pointer to <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link>,
      which, in turn, knows the type of the option's value and can parse the value,
      apply the default value, and so on. The <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> class is a
      container for instances of <fo:basic-link internal-destination="option_description">option_description</fo:basic-link>.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For almost every library, those classes could be created in a
      conventional way: that is, you'd create new options using constructors and
      then call the <fo:inline font-family="monospace">add</fo:inline> method of <fo:basic-link internal-destination="options_description">options_description</fo:basic-link>. However,
      that's overly verbose for declaring 20 or 30 options. This concern led
      to creation of the syntax that you've already seen:
<fo:block id="id523396" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
options_description desc;
desc.add_options()
    ("help", "produce help")
    ("optimization", value&lt;int&gt;()-&gt;default_value(10), "optimization level")
    ;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The call to the <fo:inline font-family="monospace">value</fo:inline> function creates an instance of
      a class derived from the <fo:inline font-family="monospace">value_semantic</fo:inline> class: <fo:inline font-family="monospace">typed_value</fo:inline>.
      That class contains the code to parse
      values of a specific type, and contains a number of methods which can be
      called by the user to specify additional information. (This
      essentially emulates named parameters of the constructor.) Calls to
      <fo:inline font-family="monospace">operator()</fo:inline> on the object returned by <fo:inline font-family="monospace">add_options</fo:inline>
      forward arguments to the constructor of the <fo:inline font-family="monospace">option_description</fo:inline>
      class and add the new instance. 
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Note that in addition to the
      <fo:inline font-family="monospace">value</fo:inline>, library provides the <fo:inline font-family="monospace">bool_switch</fo:inline>
      function, and user can write his own function which will return
      other subclasses of <fo:inline font-family="monospace">value_semantic</fo:inline> with 
      different behaviour. For the remainder of this section, we'll talk only
      about the <fo:inline font-family="monospace">value</fo:inline> function.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The information about an option is divided into syntactic and
      semantic. Syntactic information includes the name of the option and the
      number of tokens which can be used to specify the value. This
      information is used by parsers to group tokens into (name, value) pairs,
      where value is just a vector of strings
      (<fo:inline font-family="monospace">std::vector&lt;std::string&gt;</fo:inline>). The semantic layer
      is responsible for converting the value of the option into more usable C++
      types. 
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This separation is an important part of library design. The parsers
      use only the syntactic layer, which takes away some of the freedom to
      use overly complex structures. For example, it's not easy to parse
      syntax like: <fo:block id="id523511" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">calc --expression=1 + 2/3</fo:block> because it's not
      possible to parse <fo:block id="id523519" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">1 + 2/3</fo:block> without knowing that it's a C
      expression. With a little help from the user the task becomes trivial,
      and the syntax clear: <fo:block id="id523528" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">calc --expression="1 + 2/3"</fo:block></fo:block><fo:block id="id523533"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Syntactic information</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The syntactic information is provided by the
        <fo:basic-link internal-destination="options_description">boost::program_options::options_description</fo:basic-link> class
        and some methods of the
        <fo:basic-link internal-destination="value_semantic">boost::program_options::value_semantic</fo:basic-link> class.
        The simplest usage is illustrated below:
        <fo:block id="id523558" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
          options_description desc;
          desc.add_options()
          ("help", "produce help message")
          ;
        </fo:block>
        This declares one option named "help" and associates a description with
        it. The user is not allowed to specify any value.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To make an option accept a value, you'd need the
        <fo:inline font-family="monospace">value</fo:inline> function mentioned above:
        <fo:block id="id523579" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
          options_description desc;
          desc.add_options()
          ("compression", "compression level", value&lt;string&gt;())
          ("verbose", "verbosity level", value&lt;string&gt;()-&gt;implicit())
          ("email", "email to send to", value&lt;string&gt;()-&gt;multitoken());
        </fo:block>
        With these declarations, the user must specify a value for
        the first option, using a single token. For the second option, the user
        may either provide a single token for the value, or no token at
        all. For the last option, the value can span several tokens. For
        example, the following command line is OK:
        <fo:block id="id523602" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
          test --compression 10 --verbose --email beadle@mars beadle2@mars
        </fo:block></fo:block></fo:block><fo:block id="id523608"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Semantic information</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The semantic information is completely provided by the 
        <fo:basic-link internal-destination="value_semantic">boost::program_options::value_semantic</fo:basic-link> class. For
        example:
<fo:block id="id523624" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
options_description desc;
desc.add_options()
    ("compression", "compression level", value&lt;int&gt;()-&gt;default(10));
    ("email", "email", value&lt; vector&lt;string&gt; &gt;()
        -&gt;composing()-&gt;notify(&amp;your_function);
</fo:block>      
        These declarations specify that default value of the first option is 10,
        that the second option can appear several times and all instances should
        be merged, and that after parsing is done, the library will  call
        function <fo:inline font-family="monospace">&amp;your_function</fo:inline>, passing the value of the
        "email" option as argument.      
      </fo:block></fo:block><fo:block id="id523649"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Positional options</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Our definition of option as (name, value) pairs is simple and
        useful, but in one special case of the command line, there's a
        problem. A command line can include a <fo:inline font-style="italic">positional option</fo:inline>,
        which does not specify any name at all, for example:
        <fo:block id="id523664" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
          archiver --compression=9 /etc/passwd
        </fo:block>
        Here, the "/etc/passwd" element does not have any option name.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">One solution is to ask the user to extract positional options
        himself and process them as he likes. However, there's a nicer approach
        -- provide a method to automatically assign the names for positional
        options, so that the above command line can be interpreted the same way
        as:
        <fo:block id="id523680" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
          archiver --compression=9 --input-file=/etc/passwd
        </fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="id277022">positional_options_description</fo:basic-link> class allows the command line
        parser to assign the names. The class specifies how many positional options
        are allowed, and for each allowed option, specifies the name. For example:
        <fo:block id="id523702" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
          positional_options_description pd; pd.add("input-file", 1, 1);
        </fo:block> specifies that for exactly one, first, positional
        option the name will be "input-file".
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It's possible to specify that a number, or even all positional options, be
        given the same name.
        <fo:block id="id523716" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
          positional_options_description pd;
          pd.add("output-file", 2, 2).add_optional("input-file", 0, -1);
        </fo:block>
        In the above example, the first two positional options will be associated
        with name "output-file", and any others with the name "input-file".
      </fo:block></fo:block></fo:block><fo:block id="id523727"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Parsers Component</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The parsers component splits input sources into (name, value) pairs.
      Each parser looks for possible options and consults the options
      description component to determine if the option is known and how its value
      is specified. In the simplest case, the name is explicitly specified,
      which allows the library to decide if such option is known. If it is known, the
      <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> instance determines how the value is specified. (If
      it is not known, an exception is thrown.) Common
      cases are when the value is explicitly specified by the user, and when
      the value cannot be specified by the user, but the presence of the
      option implies some value (for example, <fo:inline font-family="monospace">true</fo:inline>). So, the
      parser checks that the value is specified when needed and not specified
      when not needed, and returns new (name, value) pair.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      To invoke a parser you typically call a function, passing the options
      description and command line or config file or something else.
      The results of parsing are returned as an instance of the parsed_options
      class. Typically, that object is passed directly to the storage
      component. However, it also can be used directly, or undergo some additional
      processing. 
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      There are three exceptions to the above model -- all related to
      traditional usage of the command line. While they require some support
      from the options description component, the additional complexity is
      tolerable.
      <fo:list-block id="id523777" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id523779" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The name specified on the command line may be
            different from the option name -- it's common to provide a "short option
            name" alias to a longer name. It's also common to allow an abbreviated name
            to be specified on the command line.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id523787" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Sometimes it's desirable to specify value as several
          tokens. For example, an option "--email-recipient" may be followed
          by several emails, each as a separate command line token. This
          behaviour is supported, though it can lead to parsing ambiguities
          and is not enabled by default.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id523796" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The command line may contain positional options -- elements
            which don't have any name. The command line parser provides a
            mechanism to guess names for such options, as we've seen in the
            tutorial.
          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="id523804"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Storage Component</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The storage component is responsible for:
      <fo:list-block id="id523811" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id523812" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Storing the final values of an option into a special class and in
            regular variables</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id523818" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Handling priorities among different sources.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id523822" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Calling user-specified <fo:inline font-family="monospace">notify</fo:inline> functions with the final
         values of options.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Let's consider an example:
      <fo:block id="id523836" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
        variables_map vm;
        store(parse_command_line(argc, argv, desc), vm);
        store(parse_config_file("example.cfg", desc), vm);
        notify(vm);
      </fo:block>
      The <fo:inline font-family="monospace">variables_map</fo:inline> class is used to store the option
      values. The two calls to the <fo:inline font-family="monospace">store</fo:inline> function add values
      found on the command line and in the config file. Finally the call to
      the <fo:inline font-family="monospace">notify</fo:inline> function runs the user-specified notify
      functions and stores the values into regular variables, if needed.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The priority is handled in a simple way: the <fo:inline font-family="monospace">store</fo:inline>
      function will not change the value of an option if it's already
      assigned. In this case, if the command line specifies the value for an
      option, any value in the config file is ignored.
    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id523884"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Warning</fo:block><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Don't forget to call the <fo:inline font-family="monospace">notify</fo:inline> function after you've
      stored all parsed values.</fo:block></fo:block></fo:block></fo:block><fo:block id="id523895"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Annotated List of Symbols</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following table describes all the important symbols in the
      library, for quick access.</fo:block><fo:block id="id523904" span="all"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Symbol</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" number-columns-spanned="2"><fo:block>Options description component</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="options_description">options_description</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>describes a number of options</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="value">value</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>defines the option's value</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" number-columns-spanned="2"><fo:block>Parsers component</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="parse_command_line">parse_command_line</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>parses command line</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="parse_config_file">parse_config_file</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>parses config file</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="id264411">parse_environment</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>parses environment</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" number-columns-spanned="2"><fo:block>Storage component</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="variables_map">variables_map</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>storage for option values</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block><fo:block id="program_options.howto"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">How To</fo:marker><fo:block font-size="17.28pt">How To</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This section describes how the library can be used in specific
  situations.</fo:block><fo:block id="id524031"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Non-conventional Syntax</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sometimes, standard command line syntaxes are not enough. For
    example, the gcc compiler has "-frtti" and -fno-rtti" options, and this
    syntax is not directly supported.
    </fo:block><fo:wrapper id="id524040"><!--additional parser--></fo:wrapper><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For such cases, the library allows the user to provide an
    <fo:inline font-style="italic">additional parser</fo:inline> -- a function which will be called on each
    command line element, before any processing by the library. If the
    additional parser recognises the syntax, it returns the option name and
    value, which are used directly. The above example can be handled by the
    following code:
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id524059" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
pair&lt;string, string&gt; reg_foo(const string&amp; s)
{
    if (s.find("-f") == 0) {
        if (s.substr(2, 3) == "no-")
            return make_pair(s.substr(5), string("false"));
        else
            return make_pair(s.substr(2), string("true"));
    } else {
        return make_pair(string(), string());
    }
}
</fo:block>
      Here's the definition of the additional parser. When parsing the command
      line, we pass the additional parser:
<fo:block id="id524079" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
store(command_line_parser(ac, av).options(desc).extra_parser(reg_foo)
        .run(), vm);
</fo:block>
      The complete example can be found in the "example/custom_syntax.cpp"
      file.                
    </fo:block></fo:block><fo:block id="id524089"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Response Files</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:wrapper id="id524093"><!--response files--></fo:wrapper><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Some operating system have very low limits of the command line
      length. The common way to work around those limitations is using
      <fo:inline font-style="italic">response files</fo:inline>.  A response file is just a
      configuration file which uses the same syntax as the command line. If
      the command line specifies a name of response file to use, it's loaded
      and parsed in addition to the command line.  The library does not
      provide direct support for response files, so you'll need to write some
      extra code.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      First, you need to define an option for the response file:
<fo:block id="id524118" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
("response-file", value&lt;string&gt;(), 
     "can be specified with '@name', too")
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second, you'll need an additional parser to support the standard syntax
    for specifying response files: "@file":
<fo:block id="id524131" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
pair&lt;string, string&gt; at_option_parser(string const&amp;s)
{
    if ('@' == s[0])
        return std::make_pair(string("response-file"), s.substr(1));
    else
        return pair&lt;string, string&gt;();
}

</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Finally, when the "response-file" option is found, you'll have to
    load that file and pass it to the command line parser. This part is the
    hardest. We'll use the Boost.Tokenizer library, which works but has some
    limitations. You might also consider Boost.StringAlgo. The code is:
<fo:block id="id524149" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
if (vm.count("response-file")) {
     // Load the file and tokenize it
     ifstream ifs(vm["response-file"].as&lt;string&gt;().c_str());
     if (!ifs) {
         cout &lt;&lt; "Could no open the response file\n";
         return 1;
     }
     // Read the whole file into a string
     stringstream ss;
     ss &lt;&lt; ifs.rdbuf();
     // Split the file content
     char_separator&lt;char&gt; sep(" \n\r");
     tokenizer&lt;char_separator&lt;char&gt; &gt; tok(ss.str(), sep);
     vector&lt;string&gt; args;
     copy(tok.begin(), tok.end(), back_inserter(args));
     // Parse the file and store the options
     store(command_line_parser(args).options(desc).run(), vm);     
}

</fo:block>
      The complete example can be found in the "example/response_file.cpp"
      file.                
    </fo:block></fo:block><fo:block id="id524170"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Winmain Command Line</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">On the Windows operating system, GUI applications receive the
    command line as a single string, not split into elements. For that reason,
    the command line parser cannot be used directly. At least on some
    compilers, it is possible to obtain
    the split command line, but it's not clear if all compilers support the
    same mechanism on all versions of the operating system. The
    <fo:inline font-family="monospace">split_command_line</fo:inline> function is a portable mechanism provided
    by the library.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Here's an example of use:
<fo:block id="id524193" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
vector&lt;string&gt; args = split_winmain(lpCmdLine);
store(command_line_parser(args).options(desc).run(), vm);
</fo:block>      
      The function is an overload for <fo:inline font-family="monospace">wchar_t</fo:inline> strings, so can
      also be used in Unicode applications.
    </fo:block></fo:block><fo:block id="id524211"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Option Groups and Hidden Options</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Having a single instance of the <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> class with all
    the program's options can be problematic:
      <fo:list-block id="id524226" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id524228" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Some options make sense only for specific source, for example,
          configuration files.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524233" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The user would prefer some structure in the generated help message.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524238" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Some options shouldn't appear in the generated help message at all.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To solve the above issues, the library allows a programmer to create several
      instances of the <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> class, which can be merged in
      different combinations. The following example will define three groups of
      options: command line specific, and two options group for specific program
      modules, only one of which is shown in the generated help message.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each group is defined using standard syntax. However, you should
      use reasonable names for each <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> instance:
<fo:block id="id524269" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
options_description general("General options");
general.add_options()
    ("help", "produce a help message")
    ("help-module", value&lt;string&gt;()-&gt;implicit(),
        "produce a help for a given module")
    ("version", "output the version number")
    ;

options_description gui("GUI options");
gui.add_options()
    ("display", value&lt;string&gt;(), "display to use")
    ;

options_description backend("Backend options");
backend.add_options()
    ("num-threads", value&lt;int&gt;(), "the initial number of threads")
    ;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">After declaring options groups, we merge them in two
      combinations. The first will include all options and be used for parsing. The
      second will be used for the "--help" option.
<fo:block id="id524300" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
// Declare an options description instance which will include
// all the options
options_description all("Allowed options");
all.add(general).add(gui).add(backend);

// Declare an options description instance which will be shown
// to the user
options_description visible("Allowed options");
visible.add(general).add(gui);
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">What is left is to parse and handle the options:
<fo:block id="id524314" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
variables_map vm;
store(parse_command_line(ac, av, all), vm);

if (vm.count("help")) 
{
    cout &lt;&lt; visible;
    return 0;
}
if (vm.count("help-module")) {
    const string&amp; s = vm["help-module"].as&lt;string&gt;();
    if (s == "gui") {
        cout &lt;&lt; gui;
    } else if (s == "backend") {
        cout &lt;&lt; backend;
    } else {
        cout &lt;&lt; "Unknown module '" 
             &lt;&lt; s &lt;&lt; "' in the --help-module option\n";
        return 1;
    }
    return 0;
}
if (vm.count("num-threads")) {
    cout &lt;&lt; "The 'num-threads' options was set to "
         &lt;&lt; vm["num-threads"].as&lt;int&gt;() &lt;&lt; "\n";            
}                           
</fo:block>
      When parsing the command line, all options are allowed. The "--help"
      message, however, does not include the "Backend options" group -- the
      options in that group are hidden. The user can explicitly force the
      display of that options group by passing "--help-module backend"
      option. The complete example can be found in the
      "example/option_groups.cpp" file.
    </fo:block></fo:block><fo:block id="id524344"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Custom Validators</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">By default, the conversion of option's value from string into C++
      type is done using iostreams, which sometimes is not convenient. The
      library allows the user to customize the conversion for specific
      classes. In order to do so, the user should provide suitable overload of
      the <fo:inline font-family="monospace">validate</fo:inline> function.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Let's first define a simple class:
<fo:block id="id524366" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct magic_number {
public:
    magic_number(int n) : n(n) {}
    int n;
};
</fo:block> and then overload the <fo:inline font-family="monospace">validate</fo:inline> function:
<fo:block id="id524380" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
void validate(boost::any&amp; v, 
              const std::vector&lt;std::string&gt;&amp; values,
              magic_number* target_type, int)
{
    static regex r("\\d\\d\\d-(\\d\\d\\d)");

    using namespace boost::program_options;

    // Make sure no previous assignment to 'a' was made.
    validators::check_first_occurence(v);
    // Extract the first string from 'values'. If there is more than
    // one string, it's an error, and exception will be thrown.
    const string&amp; s = validators::get_single_string(values);

    // Do regex match and convert the interesting part to 
    // int.
    smatch match;
    if (regex_match(s, match, r)) {
        v = any(magic_number(lexical_cast&lt;int&gt;(match[1])));
    } else {
        throw validation_error("invalid value");
    }        
}
        
</fo:block>The function takes four parameters. The first is the storage
      for the value, and in this case is either empty or contains an instance of
      the <fo:inline font-family="monospace">magic_number</fo:inline> class. The second is the list of strings
      found in the next occurrence of the option. The remaining two parameters
      are needed to workaround the lack of partial template specialization and
      partial function template ordering on some compilers.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The function first checks that we don't try to assign to the same
      option twice. Then it checks that only a single string was passed
      in. Next the string is verified with the help of the Boost.Regex
      library. If that test is passed, the parsed value is stored into the
      <fo:inline font-family="monospace">v</fo:inline> variable.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The complete example can be found in the "example/regex.cpp" file.
    </fo:block></fo:block><fo:block id="id524437"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Unicode Support</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To use the library with Unicode, you'd need to:
      <fo:list-block id="id524444" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id524446" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Use Unicode-aware parsers for Unicode input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524450" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Require Unicode support for options which need it</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Most of the parsers have Unicode versions. For example, the
      <fo:basic-link internal-destination="parse_command_line">parse_command_line</fo:basic-link> function has an overload which takes
      <fo:inline font-family="monospace">wchar_t</fo:inline> strings, instead of ordinary <fo:inline font-family="monospace">char</fo:inline>.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Even if some of the parsers are Unicode-aware, it does not mean you
    need to change definition of all the options. In fact, for many options,
    like integer ones, it makes no sense. To make use of Unicode you'll need
    <fo:inline font-style="italic">some</fo:inline> Unicode-aware options. They are different from
    ordinary options in that they accept <fo:inline font-family="monospace">wstring</fo:inline> input, and
    process it using wide character streams. Creating an Unicode-aware option
    is easy: just use the the <fo:inline font-family="monospace">wvalue</fo:inline> function instead of the
    regular <fo:inline font-family="monospace">value</fo:inline>.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When an ascii parser passes data to an ascii option, or a Unicode
      parser passes data to a Unicode option, the data are not changed at
      all. So, the ascii option will see a string in local 8-bit encoding, and
      the Unicode option will see whatever string was passed as the Unicode
      input.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">What happens when Unicode data is passed to an ascii option, and
      vice versa? The library automatically performs the conversion from
      Unicode to local 8-bit encoding. For example, if command line is in
      ascii, but you use <fo:inline font-family="monospace">wstring</fo:inline> options, then the ascii input
      will be converted into Unicode.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To perform the conversion, the library uses the <fo:inline font-family="monospace">codecvt&lt;wchar_t,
    char&gt;</fo:inline> locale facet from the global locale. If
    you want to work with strings that use local 8-bit encoding (as opposed to
    7-bit ascii subset), your application should start with:
      <fo:block id="id524549" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
locale::global(locale(""));
      </fo:block>
      which would set up the conversion facet according to the user's selected
      locale. 
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It's wise to check the status of the C++ locale support on your
      implementation, though. The quick test involves three steps:
      <fo:list-block id="id524563" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id524569" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Go the the "test" directory and build the "test_convert" binary.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524574" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Set some non-ascii locale in the environmemt. On Linux, one can
          run, for example: <fo:block id="id524580" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
$ export LC_CTYPE=ru_RU.KOI8-R
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524585" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Run the "test_convert" binary with any non-ascii string in the
            selected encoding as its parameter. If you see a list of Unicode codepoints,
            everything's OK. Otherwise, locale support on your system might be
            broken.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block id="program_options.design"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Design Discussion</fo:marker><fo:block font-size="17.28pt">Design Discussion</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This section focuses on some of the design questions.
  </fo:block><fo:block id="program_options.design.unicode"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Unicode Support</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Unicode support was one of the features specifically requested
      during the formal review. Throughout this document "Unicode support" is
      a synonym for "wchar_t" support, assuming that "wchar_t" always uses
      Unicode encoding.  Also, when talking about "ascii" (in lowercase) we'll
      not mean strict 7-bit ASCII encoding, but rather "char" strings in local
      8-bit encoding.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Generally, "Unicode support" can mean
      many things, but for the program_options library it means that:

      <fo:list-block id="id524628" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id524630" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Each parser should accept either <fo:inline font-family="monospace">char*</fo:inline>
          or <fo:inline font-family="monospace">wchar_t*</fo:inline>, correctly split the input into option
          names and option values and return the data.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524649" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>For each option, it should be possible to specify whether the conversion
            from string to value uses ascii or Unicode.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524655" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The library guarantees that:
            <fo:list-block id="id524660" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id524661" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>ascii input is passed to an ascii value without change
                </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524666" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Unicode input is passed to a Unicode value without change</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524671" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>ascii input passed to a Unicode value, and Unicode input
                  passed to an ascii value will be converted using a codecvt
                  facet (which may be specified by the user(which can be
                  specified by the user)
                </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The important point is that it's possible to have some "ascii
      options" together with "Unicode options". There are two reasons for
      this. First, for a given type you might not have the code to extract the
      value from Unicode string and it's not good to require that such code be written.
      Second, imagine a reusable library which has some options and exposes
      options description in its interface. If <fo:inline font-style="italic">all</fo:inline>
      options are either ascii or Unicode, and the library does not use any
      Unicode strings, then the author will likely to use ascii options, which
      would make the library unusable inside Unicode
      applications. Essentially, it would be necessary to provide two versions
      of the library -- ascii and Unicode.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Another important point is that ascii strings are passed though
      without modification. In other words, it's not possible to just convert
      ascii to Unicode and process the Unicode further. The problem is that the
      default conversion mechanism -- the <fo:inline font-family="monospace">codecvt</fo:inline> facet -- might
      not work with 8-bit input without additional setup.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The Unicode support outlined above is not complete. For example, we
      don't plan allow Unicode in option names. Unicode support is hard and
      requires a Boost-wide solution. Even comparing two arbitrary Unicode
      strings is non-trivial. Finally, using Unicode in option names is
      related to internationalization, which has it's own
      complexities. E.g. if option names depend on current locale, then all
      program parts and other parts which use the name must be
      internationalized too.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The primary question in implementing the Unicode support is whether
      to use templates and <fo:inline font-family="monospace">std::basic_string</fo:inline> or to use some
      internal encoding and convert between internal and external encodings on
      the interface boundaries.            
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The choice, mostly, is between code size and execution
      speed. A templated solution would either link library code into every
      application that uses the library (thereby making shared library
      impossible), or provide explicit instantiations in the shared library
      (increasing its size). The solution based on internal encoding would
      necessarily make conversions in a number of places and will be somewhat slower.
      Since speed is generally not an issue for this library, the second
      solution looks more attractive, but we'll take a closer look at
      individual components.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For the parsers component, we have three choices:
      <fo:list-block id="id524755" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id524756" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Use a fully templated implementation: given a string of a
            certain type, a parser will return a parsed_options instance
            with strings of the same type (i.e. the parsed_options class
            will be templated).</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524764" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Use internal encoding: same as above, but strings will be converted to and
            from the internal encoding.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524769" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Use and partly expose the internal encoding: same as above,
            but the strings in the parsed_options instance will be in the
            internal encoding. This might avoid a conversion if
            parsed_options instance is passed directly to other components,
            but can be also dangerous or confusing for a user.
          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The second solution appears to be the best -- it does not increase
    the code size much and is cleaner than the third. To avoid extra
    conversions, the Unicode version of parsed_options can also store
    strings in internal encoding.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For the options descriptions component, we don't have much
      choice. Since it's not desirable to have either all options use ascii or all
      of them use Unicode, but rather have some ascii and some Unicode options, the
      interface of the <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> must work with both. The only way is
      to pass an additional flag telling if strings use ascii or internal encoding.
      The instance of <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> can then convert into some
      other encoding if needed.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For the storage component, the only affected function is <fo:basic-link internal-destination="id281355">store</fo:basic-link>.
      For Unicode input, the <fo:basic-link internal-destination="id281355">store</fo:basic-link> function should convert the value to the
      internal encoding.  It should also inform the <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> class
      about the used encoding.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Finally, what internal encoding should we use? The
    alternatives are:
    <fo:inline font-family="monospace">std::wstring</fo:inline> (using UCS-4 encoding) and
    <fo:inline font-family="monospace">std::string</fo:inline> (using UTF-8 encoding). The difference between
    alternatives is:
      <fo:list-block id="id524858" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id524859" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Speed: UTF-8 is a bit slower</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524863" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Space: UTF-8 takes less space when input is ascii</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524868" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Code size: UTF-8 requires additional conversion code. However,
            it allows one to use existing parsers without converting them to
            <fo:inline font-family="monospace">std::wstring</fo:inline> and such conversion is likely to create a
            number of new instantiations.
          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
      There's no clear leader, but the last point seems important, so UTF-8
      will be used.      
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Choosing the UTF-8 encoding allows the use of existing parsers, 
      because 7-bit ascii characters retain their values in UTF-8, 
      so searching for 7-bit strings is simple. However, there are
      two subtle issues:
      <fo:list-block id="id524892" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id524893" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>We need to assume the character literals use ascii encoding
          and that inputs use Unicode encoding.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524899" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A Unicode character (say '=') can be followed by 'composing
          character' and the combination is not the same as just '=', so a
          simple search for '=' might find the wrong character.
          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
      Neither of these issues appear to be critical in practice, since ascii is
      almost universal encoding and since composing characters following '=' (and
      other characters with special meaning to the library) are not likely to appear.
    </fo:block></fo:block></fo:block><fo:block id="id524912"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Acknowledgements</fo:marker><fo:block font-size="17.28pt">Acknowledgements</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">I'm very gratefull to all the people who helped with the development, 
    by discussion, fixes, and as users. It was pleasant
    to see all that involvement, which made the library much better than it
    would be otherwise.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In the early stages, the library was affected by discussions with 
    Gennadiy Rozental, William Kempf and Alexander Okhotin.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Hartmut Kaiser was the first person to try the library on his project
    and send a number of suggestions and fixes.    
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The formal review lead to numerous comments and enhancements. Pavol
  Droba helped with the option description semantic. Gennadiy Rozental has
  criticised many aspects of the library which caused various simplifications.
  Pavel Vozenilek did carefull review of the implementation. A number of
  comments were made by:
    <fo:list-block id="id524943" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id524944" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>David Abrahams</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524948" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Neal D. Becker</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524952" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Misha Bergal</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524956" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>James Curran</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524960" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Carl Daniel</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524964" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Beman Dawes</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524968" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Tanton Gibbs</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524972" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Holger Grund</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524976" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Hartmut Kaiser</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524980" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Petr Kocmid</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524984" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Baptiste Lepilleur</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524988" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Marcelo E. Magallon</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524991" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Chuck Messenger</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524995" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>John Torjo</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id524999" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Matthias Troyer</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Doug Gregor and Reece Dunn helped to resolve the issues with Boostbook
    version of the documentation.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Even after review, a number of people have helped with further development:
    <fo:list-block id="id525012" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id525013" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Rob Lievaart</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525017" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Thorsten Ottosen</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525020" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Joseph Wu</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525024" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Ferdinand Prantl</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525028" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Miro Jurisic</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525032" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>John Maddock</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525036" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Janusz Piwowarski</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525040" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Charles Brockman</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525043" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Jonathan Wakely</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="program_options.reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Reference</fo:marker><fo:block font-size="17.28pt">Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id246856"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/program_options/cmdline.hpp">boost/program_options/cmdline.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id525071" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> program_options {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> command_line_style {
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:basic-link internal-destination="id321818">style_t</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;}
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="id321818"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Type style_t</fo:block></fo:block><fo:block space-after="1em">Type style_t <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::command_line_style::style_t</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id525128"><fo:block/><fo:block id="id525130" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">enum</fo:inline> style_t { allow_long =  1, allow_short =  allow_long &lt;&lt; 1, allow_dash_for_short =  allow_short &lt;&lt; 1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;allow_slash_for_short =  allow_dash_for_short &lt;&lt; 1, long_allow_adjacent =  allow_slash_for_short &lt;&lt; 1, long_allow_next =  long_allow_adjacent &lt;&lt; 1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;short_allow_adjacent =  long_allow_next &lt;&lt; 1, short_allow_next =  short_allow_adjacent &lt;&lt; 1, allow_sticky =  short_allow_next &lt;&lt; 1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;allow_guessing =  allow_sticky &lt;&lt; 1, case_insensitive =  allow_guessing &lt;&lt; 1, allow_long_disguise =  case_insensitive &lt;&lt; 1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;unix_style =  (allow_short | short_allow_adjacent | short_allow_next
                      | allow_long | long_allow_adjacent | long_allow_next
                      | allow_sticky | allow_guessing 
                      | allow_dash_for_short), default_style =  unix_style };</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id436818"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/program_options/environment_iterator.hpp">boost/program_options/environment_iterator.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id525177" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="environment_iterator">environment_iterator</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="environment_iterator"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class environment_iterator</fo:block></fo:block><fo:block space-after="1em">Class environment_iterator <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::environment_iterator</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id525215"><fo:block/><fo:block id="id525216" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> environment_iterator : <fo:inline font-weight="bold">public</fo:inline> boost::eof_iterator&lt; environment_iterator, std::pair&lt; std::string, std::string &gt; &gt;
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="environment_iteratorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id409373-bb">environment_iterator</fo:basic-link>(<fo:inline font-weight="bold">char</fo:inline> **);
&#xA0;&#xA0;<fo:basic-link internal-destination="id365913-bb">environment_iterator</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id355347-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id284447-bb">get</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id525307"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id525311"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">environment_iterator construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="environment_iteratorconstruct-copy-destruct"/><fo:inline font-family="monospace">environment_iterator</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id525326" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id525332" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id525334" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id409373-bb"/>environment_iterator(<fo:inline font-weight="bold">char</fo:inline> ** environment);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525353" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id525356" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id365913-bb"/>environment_iterator();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id525368"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">environment_iterator public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id355347-bb"/><fo:inline font-family="monospace">environment_iterator</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id525381" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id525387" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id525389" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id284447-bb"/>get() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id280769"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/program_options/eof_iterator.hpp">boost/program_options/eof_iterator.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id525425" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Derived, <fo:inline font-weight="bold">typename</fo:inline> ValueType&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="eof_iterator">eof_iterator</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="eof_iterator"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template eof_iterator</fo:block></fo:block><fo:block space-after="1em">Class template eof_iterator <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::eof_iterator</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id525486"><fo:block/><fo:block id="id525488" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Derived, <fo:inline font-weight="bold">typename</fo:inline> ValueType&gt; 
<fo:inline font-weight="bold">class</fo:inline> eof_iterator {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="eof_iteratorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id379817-bb">eof_iterator</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id355116-bb">public member functions</fo:basic-link></fo:inline>

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id409557-bb">protected member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;ValueType &amp; <fo:basic-link internal-destination="id339711-bb">value</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id391088-bb">found_eof</fo:basic-link>() ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id356130-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id264690-bb">increment</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id220769-bb">equal</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="eof_iterator">eof_iterator</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> ValueType &amp; <fo:basic-link internal-destination="id226005-bb">dereference</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id525695"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The 'eof_iterator' class is useful for constructing forward iterators in cases where iterator extract data from some source and it's easy to detect 'eof' -- i.e. the situation where there's no data. One apparent example is reading lines from a file.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Implementing such iterators using 'iterator_facade' directly would require to create class with three core operation, a couple of constructors. When using 'eof_iterator', the derived class should define only one method to get new value, plus a couple of constructors.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The basic idea is that iterator has 'eof' bit. Two iterators are equal only if both have their 'eof' bits set. The 'get' method either obtains the new value or sets the 'eof' bit.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specifically, derived class should define:</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">1. A default constructor, which creates iterator with 'eof' bit set. The constructor body should call 'found_eof' method defined here. 2. Some other constructor. It should initialize some 'data pointer' used in iterator operation and then call 'get'. 3. The 'get' method. It should operate this way:<fo:list-block id="id525729" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id525730" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>look at some 'data pointer' to see if new element is available; if not, it should call 'found_eof'.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525736" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>extract new element and store it at location returned by the 'value' method.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525741" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>advance the data pointer.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Essentially, the 'get' method has the functionality of both 'increment' and 'dereference'. It's very good for the cases where data extraction implicitly moves data pointer, like for stream operation. </fo:block><fo:block id="id525751"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">eof_iterator construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="eof_iteratorconstruct-copy-destruct"/><fo:inline font-family="monospace">eof_iterator</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id525767" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id525773" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id525776" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id379817-bb"/>eof_iterator();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id525789"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">eof_iterator public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id355116-bb"/><fo:inline font-family="monospace">eof_iterator</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id525803" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block><fo:block id="id525809"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">eof_iterator protected member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id409557-bb"/><fo:inline font-family="monospace">eof_iterator</fo:inline> protected member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id525824" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id525830" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id525832" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">ValueType &amp; <fo:wrapper id="id339711-bb"/>value() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns the reference which should be used by derived class to store the next value. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525854" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id525856" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id391088-bb"/>found_eof() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Should be called by derived class to indicate that it can't produce next element. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id525881"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">eof_iterator private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id356130-bb"/><fo:inline font-family="monospace">eof_iterator</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id525896" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id525902" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id525904" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id264690-bb"/>increment() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525924" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id525927" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id220769-bb"/>equal(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="eof_iterator">eof_iterator</fo:basic-link> &amp; other) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id525969" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id525971" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> ValueType &amp; <fo:wrapper id="id226005-bb"/>dereference() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id427440"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/program_options/errors.hpp">boost/program_options/errors.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id526015" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> program_options {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="error">error</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="invalid_syntax">invalid_syntax</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="unknown_option">unknown_option</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="ambiguous_option">ambiguous_option</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="multiple_values">multiple_values</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="multiple_occurrences">multiple_occurrences</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="validation_error">validation_error</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="invalid_option_value">invalid_option_value</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id278842">too_many_positional_options_error</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id436306">too_few_positional_options_error</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id233214">invalid_command_line_syntax</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="invalid_command_line_style">invalid_command_line_style</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="error"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class error</fo:block></fo:block><fo:block space-after="1em">Class error <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::error</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id526248"><fo:block/><fo:block id="id526249" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> error {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="errorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id311722-bb">error</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id408913-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id526307"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Base class for all errors in the library. </fo:block><fo:block id="id526314"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">error construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="errorconstruct-copy-destruct"/><fo:inline font-family="monospace">error</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id526329" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id526336" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id526338" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id311722-bb"/>error(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; what);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id526358"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">error public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id408913-bb"/><fo:inline font-family="monospace">error</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id526373" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="invalid_syntax"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class invalid_syntax</fo:block></fo:block><fo:block space-after="1em">Class invalid_syntax <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::invalid_syntax</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id526396"><fo:block/><fo:block id="id526398" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> invalid_syntax : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::error {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="invalid_syntaxconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id335696-bb">invalid_syntax</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;, <fo:inline font-weight="bold">const</fo:inline> std::string &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id322075-bb">~invalid_syntax</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id443182-bb">public member functions</fo:basic-link></fo:inline>

&#xA0;&#xA0;std::string tokens;
&#xA0;&#xA0;std::string msg;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id526483"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id526487"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">invalid_syntax construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="invalid_syntaxconstruct-copy-destruct"/><fo:inline font-family="monospace">invalid_syntax</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id526503" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id526509" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id526511" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id335696-bb"/>invalid_syntax(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; tokens, <fo:inline font-weight="bold">const</fo:inline> std::string &amp; msg);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id526538" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id526540" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id322075-bb"/>~invalid_syntax();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id526554"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">invalid_syntax public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id443182-bb"/><fo:inline font-family="monospace">invalid_syntax</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id526569" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="unknown_option"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class unknown_option</fo:block></fo:block><fo:block space-after="1em">Class unknown_option <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::unknown_option</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id526592"><fo:block/><fo:block id="id526593" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> unknown_option : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::error {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="unknown_optionconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id239278-bb">unknown_option</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id218507-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id526661"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class thrown when option name is not recognized. </fo:block><fo:block id="id526668"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">unknown_option construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="unknown_optionconstruct-copy-destruct"/><fo:inline font-family="monospace">unknown_option</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id526685" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id526691" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id526693" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id239278-bb"/>unknown_option(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; name);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id526714"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">unknown_option public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id218507-bb"/><fo:inline font-family="monospace">unknown_option</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id526728" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ambiguous_option"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class ambiguous_option</fo:block></fo:block><fo:block space-after="1em">Class ambiguous_option <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::ambiguous_option</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id526752"><fo:block/><fo:block id="id526753" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> ambiguous_option : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::error {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="ambiguous_optionconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id447412-bb">ambiguous_option</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;, <fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id354263-bb">~ambiguous_option</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id375072-bb">public member functions</fo:basic-link></fo:inline>

&#xA0;&#xA0;std::vector&lt; std::string &gt; alternatives;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id526840"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class thrown when there's ambiguity amoung several possible options. </fo:block><fo:block id="id526847"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">ambiguous_option construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="ambiguous_optionconstruct-copy-destruct"/><fo:inline font-family="monospace">ambiguous_option</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id526863" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id526869" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id526872" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id447412-bb"/>ambiguous_option(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; name, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp; alternatives);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id526900" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id526903" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id354263-bb"/>~ambiguous_option();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id526916"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">ambiguous_option public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id375072-bb"/><fo:inline font-family="monospace">ambiguous_option</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id526931" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="multiple_values"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class multiple_values</fo:block></fo:block><fo:block space-after="1em">Class multiple_values <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::multiple_values</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id526953"><fo:block/><fo:block id="id526955" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> multiple_values : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::error {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="multiple_valuesconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id254121-bb">multiple_values</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id415576-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id527022"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class thrown when there are several option values, but user called a method which cannot return them all. </fo:block><fo:block id="id527030"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">multiple_values construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="multiple_valuesconstruct-copy-destruct"/><fo:inline font-family="monospace">multiple_values</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id527046" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id527052" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id527054" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id254121-bb"/>multiple_values(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; what);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id527075"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">multiple_values public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id415576-bb"/><fo:inline font-family="monospace">multiple_values</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id527089" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="multiple_occurrences"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class multiple_occurrences</fo:block></fo:block><fo:block space-after="1em">Class multiple_occurrences <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::multiple_occurrences</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id527114"><fo:block/><fo:block id="id527116" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> multiple_occurrences : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::error {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="multiple_occurrencesconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id322038-bb">multiple_occurrences</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id365068-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id527182"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class thrown when there are several occurrences of an option, but user called a method which cannot return them all. </fo:block><fo:block id="id527190"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">multiple_occurrences construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="multiple_occurrencesconstruct-copy-destruct"/><fo:inline font-family="monospace">multiple_occurrences</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id527206" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id527213" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id527215" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id322038-bb"/>multiple_occurrences(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; what);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id527236"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">multiple_occurrences public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id365068-bb"/><fo:inline font-family="monospace">multiple_occurrences</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id527251" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="validation_error"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class validation_error</fo:block></fo:block><fo:block space-after="1em">Class validation_error <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::validation_error</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id527274"><fo:block/><fo:block id="id527275" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> validation_error : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::error {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="validation_errorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id361394-bb">validation_error</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id349166-bb">~validation_error</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id352641-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id228785-bb">set_option_name</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;) ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id337074-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:basic-link internal-destination="id287982-bb">what</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id527420"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class thrown when value of option is incorrect. </fo:block><fo:block id="id527427"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">validation_error construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="validation_errorconstruct-copy-destruct"/><fo:inline font-family="monospace">validation_error</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id527443" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id527449" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id527452" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id361394-bb"/>validation_error(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; what);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id527472" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id527474" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id349166-bb"/>~validation_error();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id527488"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">validation_error public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id352641-bb"/><fo:inline font-family="monospace">validation_error</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id527502" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id527508" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id527510" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id228785-bb"/>set_option_name(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; option) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id527538"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">validation_error private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id337074-bb"/><fo:inline font-family="monospace">validation_error</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id527553" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id527559" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id527562" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:wrapper id="id287982-bb"/>what() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="invalid_option_value"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class invalid_option_value</fo:block></fo:block><fo:block space-after="1em">Class invalid_option_value <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::invalid_option_value</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id527615"><fo:block/><fo:block id="id527616" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> invalid_option_value
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::validation_error
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="invalid_option_valueconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id264397-bb">invalid_option_value</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id349280-bb">invalid_option_value</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::wstring &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id346387-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id527701"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id527705"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">invalid_option_value construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="invalid_option_valueconstruct-copy-destruct"/><fo:inline font-family="monospace">invalid_option_value</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id527721" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id527728" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id527730" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id264397-bb"/>invalid_option_value(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; value);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id527751" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id527753" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id349280-bb"/>invalid_option_value(<fo:inline font-weight="bold">const</fo:inline> std::wstring &amp; value);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id527774"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">invalid_option_value public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id346387-bb"/><fo:inline font-family="monospace">invalid_option_value</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id527789" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id278842"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class too_many_positional_options_error</fo:block></fo:block><fo:block space-after="1em">Class too_many_positional_options_error <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::too_many_positional_options_error</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id527812"><fo:block/><fo:block id="id527813" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> too_many_positional_options_error
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::error
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id278842construct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id251844-bb">too_many_positional_options_error</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id277956-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id527880"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class thrown when there are too many positional options. </fo:block><fo:block id="id527888"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">too_many_positional_options_error construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id278842construct-copy-destruct"/><fo:inline font-family="monospace">too_many_positional_options_error</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id527903" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id527910" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id527912" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id251844-bb"/>too_many_positional_options_error(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; what);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id527933"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">too_many_positional_options_error public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id277956-bb"/><fo:inline font-family="monospace">too_many_positional_options_error</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id527948" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id436306"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class too_few_positional_options_error</fo:block></fo:block><fo:block space-after="1em">Class too_few_positional_options_error <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::too_few_positional_options_error</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id527973"><fo:block/><fo:block id="id527974" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> too_few_positional_options_error
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::error
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id436306construct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id443859-bb">too_few_positional_options_error</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id345762-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id528041"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class thrown when there are too few positional options. </fo:block><fo:block id="id528049"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">too_few_positional_options_error construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id436306construct-copy-destruct"/><fo:inline font-family="monospace">too_few_positional_options_error</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id528065" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id528071" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id528073" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id443859-bb"/>too_few_positional_options_error(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; what);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id528095"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">too_few_positional_options_error public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id345762-bb"/><fo:inline font-family="monospace">too_few_positional_options_error</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id528110" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id233214"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class invalid_command_line_syntax</fo:block></fo:block><fo:block space-after="1em">Class invalid_command_line_syntax <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::invalid_command_line_syntax</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id528134"><fo:block/><fo:block id="id528135" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> invalid_command_line_syntax {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id233214construct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id396748-bb">invalid_command_line_syntax</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;, kind_t);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id279856-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;kind_t <fo:basic-link internal-destination="id279859-bb">kind</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id362648-bb">protected static functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;std::string <fo:basic-link internal-destination="id393065-bb">error_message</fo:basic-link>(kind_t) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id528242"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id528246"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">invalid_command_line_syntax construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id233214construct-copy-destruct"/><fo:inline font-family="monospace">invalid_command_line_syntax</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id528262" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id528268" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id528270" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id396748-bb"/>invalid_command_line_syntax(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; tokens, kind_t kind);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id528293"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">invalid_command_line_syntax public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id279856-bb"/><fo:inline font-family="monospace">invalid_command_line_syntax</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id528307" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id528313" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id528316" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">kind_t <fo:wrapper id="id279859-bb"/>kind() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id528339"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">invalid_command_line_syntax protected static functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id362648-bb"/><fo:inline font-family="monospace">invalid_command_line_syntax</fo:inline> protected static functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id528354" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id528360" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id528362" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::string <fo:wrapper id="id393065-bb"/>error_message(kind_t kind) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="invalid_command_line_style"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class invalid_command_line_style</fo:block></fo:block><fo:block space-after="1em">Class invalid_command_line_style <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::invalid_command_line_style</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id528400"><fo:block/><fo:block id="id528401" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> invalid_command_line_style : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::error {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="invalid_command_line_styleconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id387863-bb">invalid_command_line_style</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id387860-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id528469"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id528472"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">invalid_command_line_style construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="invalid_command_line_styleconstruct-copy-destruct"/><fo:inline font-family="monospace">invalid_command_line_style</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id528490" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id528496" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id528498" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id387863-bb"/>invalid_command_line_style(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; msg);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id528519"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">invalid_command_line_style public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id387860-bb"/><fo:inline font-family="monospace">invalid_command_line_style</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id528533" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id419627"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/program_options/option.hpp">boost/program_options/option.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id528556" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> program_options {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="basic_option">basic_option</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="basic_option">basic_option</fo:basic-link>&lt; <fo:inline font-weight="bold">char</fo:inline> &gt; option;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="basic_option">basic_option</fo:basic-link>&lt; <fo:inline font-weight="bold">wchar_t</fo:inline> &gt; woption;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="basic_option"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template basic_option</fo:block></fo:block><fo:block space-after="1em">Class template basic_option <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::basic_option</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id528663"><fo:block/><fo:block id="id528664" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
<fo:inline font-weight="bold">class</fo:inline> basic_option {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="basic_optionconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id260800-bb">basic_option</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id260802-bb">basic_option</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;, <fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id430785-bb">public member functions</fo:basic-link></fo:inline>

&#xA0;&#xA0;std::string string_key;
&#xA0;&#xA0;int position_key;
&#xA0;&#xA0;std::vector&lt; std::basic_string&lt; charT &gt; &gt; value;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id528757"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Option found in input source. Contains a key and a value. The key, in turn, can be a string (name of an option), or an integer (position in input source) -- in case no name is specified. The latter is only possible for command line. The template parameter specifies the type of char used for storing the option's value. </fo:block><fo:block id="id528769"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">basic_option construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="basic_optionconstruct-copy-destruct"/><fo:inline font-family="monospace">basic_option</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id528785" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id528791" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id528794" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id260800-bb"/>basic_option();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id528807" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id528810" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id260802-bb"/>basic_option(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; string_key, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp; value);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id528837"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">basic_option public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id430785-bb"/><fo:inline font-family="monospace">basic_option</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id528852" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id258673"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/program_options/options_description.hpp">boost/program_options/options_description.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id528874" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> program_options {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="option_description">option_description</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id367899">options_description_easy_init</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="duplicate_option_error">duplicate_option_error</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="option_description"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class option_description</fo:block></fo:block><fo:block space-after="1em">Class option_description <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::option_description</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id528974"><fo:block/><fo:block id="id528975" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> option_description {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="option_descriptionconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id340432-bb">option_description</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id245011-bb">option_description</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> *, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> *);
&#xA0;&#xA0;<fo:basic-link internal-destination="id420495-bb">option_description</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> *, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> *, <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> *);
&#xA0;&#xA0;<fo:basic-link internal-destination="id320330-bb">~option_description</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id406814-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::string &amp; <fo:basic-link internal-destination="id239618-bb">short_name</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::string &amp; <fo:basic-link internal-destination="id394157-bb">long_name</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::string &amp; <fo:basic-link internal-destination="id419353-bb">description</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;shared_ptr&lt; <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> &gt; <fo:basic-link internal-destination="id247866-bb">semantic</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;std::string <fo:basic-link internal-destination="id301982-bb">format_name</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;std::string <fo:basic-link internal-destination="id429607-bb">format_parameter</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id319434-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="option_description">option_description</fo:basic-link> &amp; <fo:basic-link internal-destination="id255460-bb">name</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> *) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id529320"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Describes one possible command line/config file option. There are two kinds of properties of an option. First describe it syntactically and are used only to validate input. Second affect interpretation of the option, for example default value for it or function that should be called when the value is finally known. Routines which perform parsing never use second kind of properties -- they are side effect free. <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">options_description </fo:block></fo:block><fo:block id="id529336"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">option_description construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="option_descriptionconstruct-copy-destruct"/><fo:inline font-family="monospace">option_description</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id529352" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id529358" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id529361" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id340432-bb"/>option_description();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id529375" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id529377" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id245011-bb"/>option_description(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * name, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> * s);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Initializes the object with the passed data.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note: it would be nice to make the second parameter auto_ptr, to explicitly pass ownership. Unfortunately, it's often needed to create objects of types derived from 'value_semantic': options_description d; d.add_options()("a", parameter&lt;int&gt;("n")-&gt;default_value(1)); Here, the static type returned by 'parameter' should be derived from value_semantic.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Alas, derived-&gt;base conversion for auto_ptr does not really work, see http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2000/n1232.pdf http://std.dkuug.dk/jtc1/sc22/wg21/docs/cwg_defects.html#84</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">So, we have to use plain old pointers. Besides, users are not expected to use the constructor directly.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The 'name' parameter is interpreted by the following rules:<fo:list-block id="id529449" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id529450" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if there's no "," character in 'name', it specifies long name</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id529455" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>otherwise, the part before "," specifies long name and the part after -- long name. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id529460" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id529462" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id420495-bb"/>option_description(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * name, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> * s, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * description);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Initializes the class with the passed data. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id529520" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id529523" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id320330-bb"/>~option_description();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id529537"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">option_description public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id406814-bb"/><fo:inline font-family="monospace">option_description</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id529552" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id529557" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id529560" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> std::string &amp; <fo:wrapper id="id239618-bb"/>short_name() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id529588" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id529591" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> std::string &amp; <fo:wrapper id="id394157-bb"/>long_name() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id529619" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id529622" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> std::string &amp; <fo:wrapper id="id419353-bb"/>description() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id529651" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id529653" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">shared_ptr&lt; <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> &gt; <fo:wrapper id="id247866-bb"/>semantic() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id529691" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id529694" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::string <fo:wrapper id="id301982-bb"/>format_name() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id529717" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id529719" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::string <fo:wrapper id="id429607-bb"/>format_parameter() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Return the parameter name and properties, formatted suitably for usage message. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id529747"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">option_description private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id319434-bb"/><fo:inline font-family="monospace">option_description</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id529762" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id529767" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id529770" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="option_description">option_description</fo:basic-link> &amp; <fo:wrapper id="id255460-bb"/>name(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * name) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id367899"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class options_description_easy_init</fo:block></fo:block><fo:block space-after="1em">Class options_description_easy_init <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::options_description_easy_init</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id529825"><fo:block/><fo:block id="id529826" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> options_description_easy_init {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id367899construct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id299517-bb">options_description_easy_init</fo:basic-link>(<fo:basic-link internal-destination="options_description">options_description</fo:basic-link> *);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id415060-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id367899">options_description_easy_init</fo:basic-link> &amp; <fo:basic-link internal-destination="id253871-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> *, <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> *) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="id367899">options_description_easy_init</fo:basic-link> &amp; 
&#xA0;&#xA0;<fo:basic-link internal-destination="id267818-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> *, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> *) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="id367899">options_description_easy_init</fo:basic-link> &amp; 
&#xA0;&#xA0;<fo:basic-link internal-destination="id362654-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> *, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> *, <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> *) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id530056"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class which provides convenient creation syntax to option_description. </fo:block><fo:block id="id530064"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">options_description_easy_init construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id367899construct-copy-destruct"/><fo:inline font-family="monospace">options_description_easy_init</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id530079" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id530085" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id530088" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id299517-bb"/>options_description_easy_init(<fo:basic-link internal-destination="options_description">options_description</fo:basic-link> * owner);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id530110"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">options_description_easy_init public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id415060-bb"/><fo:inline font-family="monospace">options_description_easy_init</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id530125" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id530131" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id530134" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="id367899">options_description_easy_init</fo:basic-link> &amp; 
<fo:wrapper id="id253871-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * name, <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * description) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id530188" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id530190" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="id367899">options_description_easy_init</fo:basic-link> &amp; 
<fo:wrapper id="id267818-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * name, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> * s) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id530246" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id530249" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="id367899">options_description_easy_init</fo:basic-link> &amp; 
<fo:wrapper id="id362654-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * name, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link> * s, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * description) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="options_description"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class options_description</fo:block></fo:block><fo:block space-after="1em">Class options_description <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::options_description</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id530337"><fo:block/><fo:block id="id530338" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> options_description {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="options_descriptionconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id244008-bb">options_description</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id220391-bb">options_description</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id247472-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id429915-bb">add</fo:basic-link>(shared_ptr&lt; <fo:basic-link internal-destination="option_description">option_description</fo:basic-link> &gt;) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp; <fo:basic-link internal-destination="id229417-bb">add</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp;) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="id367899">options_description_easy_init</fo:basic-link> <fo:basic-link internal-destination="id338953-bb">add_options</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:basic-link internal-destination="id249381-bb">count</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:basic-link internal-destination="id266214-bb">count_approx</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="option_description">option_description</fo:basic-link> &amp; <fo:basic-link internal-destination="id384118-bb">find</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="option_description">option_description</fo:basic-link> &amp; <fo:basic-link internal-destination="id343294-bb">find_approx</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;std::set&lt; std::string &gt; <fo:basic-link internal-destination="id270925-bb">keys</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;std::set&lt; std::string &gt; <fo:basic-link internal-destination="id256323-bb">primary_keys</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;std::set&lt; std::string &gt; <fo:basic-link internal-destination="id319045-bb">approximations</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id249649-bb">print</fo:basic-link>(std::ostream &amp;) <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id262614-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;approximation_range <fo:basic-link internal-destination="id251061-bb">find_approximation</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id530762"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A set of option descriptions. This provides convenient interface for adding new option (the add_options) method, and facilities to search for options by name.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">See here  for option adding interface discussion. <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">option_description </fo:block></fo:block><fo:block id="id530777"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">options_description construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="options_descriptionconstruct-copy-destruct"/><fo:inline font-family="monospace">options_description</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id530793" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id530799" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id530802" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id244008-bb"/>options_description();</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Creates the instance. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id530818" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id530821" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id220391-bb"/>options_description(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; caption);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Creates the instance. The 'caption' parameter gives the name of this 'options_description' instance. Primarily useful for output. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id530846"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">options_description public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id247472-bb"/><fo:inline font-family="monospace">options_description</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id530861" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id530867" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id530870" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id429915-bb"/>add(shared_ptr&lt; <fo:basic-link internal-destination="option_description">option_description</fo:basic-link> &gt; desc) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Adds new variable description. Throws duplicate_variable_error if either short or long name matches that of already present one. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id530904" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id530906" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp; <fo:wrapper id="id229417-bb"/>add(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp; desc) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Adds a group of option description. This has the same effect as adding all option_descriptions in 'desc' individually, except that output operator will show a separate group. Returns *this. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id530952" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id530954" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="id367899">options_description_easy_init</fo:basic-link> <fo:wrapper id="id338953-bb"/>add_options() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns an object of implementation-defined type suitable for adding options to options_description. The returned object will have overloaded operator() with parameter type matching 'option_description' constructors. Calling the operator will create new option_description instance and add it. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id530984" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id530986" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">unsigned</fo:inline> <fo:wrapper id="id249381-bb"/>count(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; name) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Count the number of option descriptions with given name. Returns 0 or 1. The 'name' parameter can be either name of long option, and short option prefixed by '-'. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id531026" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id531028" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">unsigned</fo:inline> <fo:wrapper id="id266214-bb"/>count_approx(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; prefix) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Count the number of descriptions having the given string as prefix. This makes sense only for long options. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id531067" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id531070" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="option_description">option_description</fo:basic-link> &amp; <fo:wrapper id="id384118-bb"/>find(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; name) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns description given a name. 
</fo:block><fo:list-block id="id531116" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id531119" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>count(name) == 1 </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id531127" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id531130" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="option_description">option_description</fo:basic-link> &amp; <fo:wrapper id="id343294-bb"/>find_approx(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; prefix) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns description given a prefix. Throws 
</fo:block><fo:list-block id="id531176" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id531180" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>count_approx(name) == 1 </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id531188" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id531190" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::set&lt; std::string &gt; <fo:wrapper id="id270925-bb"/>keys() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id531215" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id531217" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::set&lt; std::string &gt; <fo:wrapper id="id256323-bb"/>primary_keys() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For each option description stored, contains long name if not empty, if it is empty, short name is returned. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id531245" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id531248" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::set&lt; std::string &gt; <fo:wrapper id="id319045-bb"/>approximations(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; prefix) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id531279" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id531282" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id249649-bb"/>print(std::ostream &amp; os) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Output 'desc' to the specified stream, calling 'f' to output each option_description element. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id531314"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">options_description private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id262614-bb"/><fo:inline font-family="monospace">options_description</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id531329" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id531334" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id531337" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">approximation_range <fo:wrapper id="id251061-bb"/>find_approximation(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; prefix) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="duplicate_option_error"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class duplicate_option_error</fo:block></fo:block><fo:block space-after="1em">Class duplicate_option_error <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::duplicate_option_error</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id531386"><fo:block/><fo:block id="id531387" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> duplicate_option_error : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::error {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="duplicate_option_errorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id414336-bb">duplicate_option_error</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id414999-bb">public member functions</fo:basic-link></fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id531454"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class thrown when duplicate option description is found. </fo:block><fo:block id="id531461"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">duplicate_option_error construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="duplicate_option_errorconstruct-copy-destruct"/><fo:inline font-family="monospace">duplicate_option_error</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id531478" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id531484" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id531487" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id414336-bb"/>duplicate_option_error(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; what);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id531508"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">duplicate_option_error public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id414999-bb"/><fo:inline font-family="monospace">duplicate_option_error</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id531522" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id225750"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/program_options/parsers.hpp">boost/program_options/parsers.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id531544" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> program_options {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id389683-bb">basic_parsed_options</fo:basic-link>&lt;<fo:inline font-weight="bold">wchar_t</fo:inline>&gt;;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="common_command_line_parser">common_command_line_parser</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="basic_command_line_parser">basic_command_line_parser</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; <fo:inline font-weight="bold">char</fo:inline> &gt; parsed_options;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; <fo:inline font-weight="bold">wchar_t</fo:inline> &gt; wparsed_options;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> function1&lt; std::pair&lt; std::string, std::string &gt;, <fo:inline font-weight="bold">const</fo:inline> std::string &amp; &gt; ext_parser;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="basic_command_line_parser">basic_command_line_parser</fo:basic-link>&lt; <fo:inline font-weight="bold">char</fo:inline> &gt; command_line_parser;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="basic_command_line_parser">basic_command_line_parser</fo:basic-link>&lt; <fo:inline font-weight="bold">wchar_t</fo:inline> &gt; wcommand_line_parser;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; charT &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="parse_command_line">parse_command_line</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>, charT *, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp;, <fo:inline font-weight="bold">int</fo:inline> = 0, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;function1&lt; std::pair&lt; std::string, std::string &gt;, <fo:inline font-weight="bold">const</fo:inline> std::string &amp; &gt; = ext_parser());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;BOOST_PROGRAM_OPTIONS_DECL <fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; charT &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="parse_config_file">parse_config_file</fo:basic-link>(std::basic_istream&lt; charT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;BOOST_PROGRAM_OPTIONS_DECL parsed_options 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id264411">parse_environment</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> function1&lt; std::string, std::string &gt; &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;BOOST_PROGRAM_OPTIONS_DECL parsed_options 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id285434">parse_environment</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp;, <fo:inline font-weight="bold">const</fo:inline> std::string &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;BOOST_PROGRAM_OPTIONS_DECL parsed_options 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id285434">parse_environment</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> *);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="basic_parsed_options"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template basic_parsed_options</fo:block></fo:block><fo:block space-after="1em">Class template basic_parsed_options <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::basic_parsed_options</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id532032"><fo:block/><fo:block id="id532034" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
<fo:inline font-weight="bold">class</fo:inline> basic_parsed_options {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="basic_parsed_optionsconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id338135-bb">basic_parsed_options</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> *);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id251453-bb">public member functions</fo:basic-link></fo:inline>

&#xA0;&#xA0;std::vector&lt; <fo:basic-link internal-destination="basic_option">basic_option</fo:basic-link>&lt; charT &gt; &gt; options;
&#xA0;&#xA0;const <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> * description;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id532134"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Results of parsing an input source. The primary use of this class is passing information from parsers component to value storage component. This class does not makes much sense itself. </fo:block><fo:block id="id532143"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">basic_parsed_options construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="basic_parsed_optionsconstruct-copy-destruct"/><fo:inline font-family="monospace">basic_parsed_options</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id532160" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id532166" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id532169" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id338135-bb"/>basic_parsed_options(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> * description);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id532197"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">basic_parsed_options public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id251453-bb"/><fo:inline font-family="monospace">basic_parsed_options</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id532213" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"/></fo:block><fo:block id="id532219"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Specializations</fo:marker><fo:block font-size="10pt">Specializations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id532223" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id532224" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="id389683-bb">Class basic_parsed_options&lt;wchar_t&gt;</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id389683-bb"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class basic_parsed_options&lt;wchar_t&gt;</fo:block></fo:block><fo:block space-after="1em">Class basic_parsed_options&lt;wchar_t&gt; <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::basic_parsed_options&lt;wchar_t&gt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id532253"><fo:block/><fo:block id="id532254" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> basic_parsed_options&lt;<fo:inline font-weight="bold">wchar_t</fo:inline>&gt; {
<fo:inline font-weight="bold">public</fo:inline>:

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id274196-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0; <fo:basic-link internal-destination="id332756-bb">basic_parsed_options</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; <fo:inline font-weight="bold">char</fo:inline> &gt; &amp;) ;

&#xA0;&#xA0;std::vector&lt; <fo:basic-link internal-destination="basic_option">basic_option</fo:basic-link>&lt; wchar_t &gt; &gt; options;
&#xA0;&#xA0;const <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> * description;
&#xA0;&#xA0;<fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; char &gt; utf8_encoded_options;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id532354"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specialization of basic_parsed_options which:<fo:list-block id="id532361" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id532362" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>provides convenient conversion from basic_parsed_options&lt;char&gt;</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id532368" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>stores the passed char-based options for later use. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id532373"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">basic_parsed_options public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id274196-bb"/><fo:inline font-family="monospace">basic_parsed_options</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id532388" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id532394" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id532396" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"> <fo:wrapper id="id332756-bb"/>basic_parsed_options(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; <fo:inline font-weight="bold">char</fo:inline> &gt; &amp; po) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Constructs wrapped options from options in UTF8 encoding. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="common_command_line_parser"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class common_command_line_parser</fo:block></fo:block><fo:block space-after="1em">Class common_command_line_parser <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::common_command_line_parser</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id532457"><fo:block/><fo:block id="id532459" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> common_command_line_parser {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="common_command_line_parserconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id392934-bb">common_command_line_parser</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id412751-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;parsed_options <fo:basic-link internal-destination="id303632-bb">run</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id532541"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Character-type independent command line parser. </fo:block><fo:block id="id532547"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">common_command_line_parser construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="common_command_line_parserconstruct-copy-destruct"/><fo:inline font-family="monospace">common_command_line_parser</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id532566" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id532572" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id532574" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id392934-bb"/>common_command_line_parser(<fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp; args);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id532595"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">common_command_line_parser public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id412751-bb"/><fo:inline font-family="monospace">common_command_line_parser</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id532611" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id532616" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id532619" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">parsed_options <fo:wrapper id="id303632-bb"/>run() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Parses the command line and returns parsed options in internal encoding. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="basic_command_line_parser"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template basic_command_line_parser</fo:block></fo:block><fo:block space-after="1em">Class template basic_command_line_parser <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::basic_command_line_parser</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id532665"><fo:block/><fo:block id="id532667" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
<fo:inline font-weight="bold">class</fo:inline> basic_command_line_parser
  :  : <fo:inline font-weight="bold">private</fo:inline> boost::program_options::common_command_line_parser
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="basic_command_line_parserconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id247431-bb">basic_command_line_parser</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::basic_string&lt; charT &gt; &gt; &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id330930-bb">basic_command_line_parser</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>, charT *);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id397948-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="basic_command_line_parser">basic_command_line_parser</fo:basic-link> &amp; <fo:basic-link internal-destination="id386229-bb">options</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp;) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="basic_command_line_parser">basic_command_line_parser</fo:basic-link> &amp; 
&#xA0;&#xA0;<fo:basic-link internal-destination="id220774-bb">positional</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="id277022">positional_options_description</fo:basic-link> &amp;) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="basic_command_line_parser">basic_command_line_parser</fo:basic-link> &amp; <fo:basic-link internal-destination="id302369-bb">style</fo:basic-link>(<fo:inline font-weight="bold">int</fo:inline>) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="basic_command_line_parser">basic_command_line_parser</fo:basic-link> &amp; <fo:basic-link internal-destination="id405167-bb">extra_parser</fo:basic-link>(ext_parser) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; charT &gt; <fo:basic-link internal-destination="id361367-bb">run</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id532913"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Command line parser.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The class allows one to specify all the information needed for parsing and to parser the parse the command line. It is primarily needed to emulate named function parameters -- a regular function with 5 parameters will be hard to use and creating overloads with a smaller nuber of parameters will be confusing.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For the most common case, the function parse_command_line is a better alternative. </fo:block><fo:block id="id532931"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">basic_command_line_parser construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="basic_command_line_parserconstruct-copy-destruct"/><fo:inline font-family="monospace">basic_command_line_parser</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id532948" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id532955" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id532957" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id247431-bb"/>basic_command_line_parser(<fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::basic_string&lt; charT &gt; &gt; &amp; args);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Creates a command line parser for the specified arguments list. The 'args' parameter should not include program name. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id532983" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id532986" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id330930-bb"/>basic_command_line_parser(<fo:inline font-weight="bold">int</fo:inline> argc, charT * argv);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Creates a command line parser for the specified arguments list. The parameter should be the same as passes to 'main'. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id533010"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">basic_command_line_parser public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id397948-bb"/><fo:inline font-family="monospace">basic_command_line_parser</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id533025" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id533031" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id533033" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="basic_command_line_parser">basic_command_line_parser</fo:basic-link> &amp; <fo:wrapper id="id386229-bb"/>options(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp; desc) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sets options descriptions to use. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id533076" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id533078" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="basic_command_line_parser">basic_command_line_parser</fo:basic-link> &amp; 
<fo:wrapper id="id220774-bb"/>positional(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="id277022">positional_options_description</fo:basic-link> &amp; desc) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sets positional options description to use. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id533122" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id533124" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="basic_command_line_parser">basic_command_line_parser</fo:basic-link> &amp; <fo:wrapper id="id302369-bb"/>style(<fo:inline font-weight="bold">int</fo:inline> ) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sets the command line style. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id533158" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id533161" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="basic_command_line_parser">basic_command_line_parser</fo:basic-link> &amp; <fo:wrapper id="id405167-bb"/>extra_parser(ext_parser ) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sets the extra parsers. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id533189" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id533191" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; charT &gt; <fo:wrapper id="id361367-bb"/>run() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Parses the command line and returns parsed options in internal encoding. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="parse_command_line"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template parse_command_line</fo:block></fo:block><fo:block space-after="1em">Function template parse_command_line <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::parse_command_line</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id533244"><fo:block/><fo:block id="id533246" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; charT &gt; 
&#xA0;&#xA0;parse_command_line(<fo:inline font-weight="bold">int</fo:inline> argc, charT * argv, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp; , 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> style = 0, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;function1&lt; std::pair&lt; std::string, std::string &gt;, <fo:inline font-weight="bold">const</fo:inline> std::string &amp; &gt; ext = ext_parser());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id533315"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Creates instance of 'command_line_parser', passes parameters to it, and returns the result of calling the 'run' method. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="parse_config_file"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template parse_config_file</fo:block></fo:block><fo:block space-after="1em">Function template parse_config_file <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::parse_config_file</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id533342"><fo:block/><fo:block id="id533344" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
&#xA0;&#xA0;BOOST_PROGRAM_OPTIONS_DECL <fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; charT &gt; 
&#xA0;&#xA0;parse_config_file(std::basic_istream&lt; charT &gt; &amp; , 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp; );</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id533393"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Parse a config file. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id264411"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function parse_environment</fo:block></fo:block><fo:block space-after="1em">Function parse_environment <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::parse_environment</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id533418"><fo:block/><fo:block id="id533419" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
BOOST_PROGRAM_OPTIONS_DECL parsed_options 
parse_environment(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp; , 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> function1&lt; std::string, std::string &gt; &amp; name_mapper);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id533452"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Parse environment.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For each environment variable, the 'name_mapper' function is called to obtain the option name. If it returns empty string, the variable is ignored.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is done since naming of environment variables is typically different from the naming of command line options. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id285434"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function parse_environment</fo:block></fo:block><fo:block space-after="1em">Function parse_environment <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::parse_environment</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id533487"><fo:block/><fo:block id="id533489" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
BOOST_PROGRAM_OPTIONS_DECL parsed_options 
parse_environment(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp; , <fo:inline font-weight="bold">const</fo:inline> std::string &amp; prefix);
BOOST_PROGRAM_OPTIONS_DECL parsed_options 
parse_environment(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="options_description">options_description</fo:basic-link> &amp; , <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * prefix);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id533553"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Parse environment.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Takes all environment variables which start with 'prefix'. The option name is obtained from variable name by removing the prefix and converting the remaining string into lower case. </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id420630"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/program_options/positional_options.hpp">boost/program_options/positional_options.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id533581" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> program_options {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id277022">positional_options_description</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="id277022"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class positional_options_description</fo:block></fo:block><fo:block space-after="1em">Class positional_options_description <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::positional_options_description</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id533632"><fo:block/><fo:block id="id533633" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> positional_options_description {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id277022construct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id223900-bb">positional_options_description</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id228419-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id228425-bb">add</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> *, <fo:inline font-weight="bold">int</fo:inline>) ;
&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:basic-link internal-destination="id415172-bb">max_total_count</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::string &amp; <fo:basic-link internal-destination="id354769-bb">name_for_position</fo:basic-link>(<fo:inline font-weight="bold">unsigned</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id533777"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Describes positional options.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The class allows to guess option names for positional options, which are specified on the command line and are identified by the position. The class uses the information provided by the user to associate a name with every positional option, or tell that no name is known.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The primary assumption is that only the relative order of the positional options themselves matters, and that any interleaving ordinary options don't affect interpretation of positional options.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The user initializes the class by specifying that first N positional options should be given the name X1, following M options should be given the name X2 and so on. </fo:block><fo:block id="id533802"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">positional_options_description construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id277022construct-copy-destruct"/><fo:inline font-family="monospace">positional_options_description</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id533818" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id533824" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id533827" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id223900-bb"/>positional_options_description();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id533840"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">positional_options_description public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id228419-bb"/><fo:inline font-family="monospace">positional_options_description</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id533855" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id533861" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id533863" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id228425-bb"/>add(<fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * name, <fo:inline font-weight="bold">int</fo:inline> max_count) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Species that up to 'max_count' next positional options should be given the 'name'. The value of '-1' means 'unlimited'. No calls to 'add' can be made after call with 'max_value' equal to '-1'. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id533909" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id533912" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">unsigned</fo:inline> <fo:wrapper id="id415172-bb"/>max_total_count() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns the maximum number of positional options that can be present. Can return numeric_limits&lt;unsigned&gt;::max() to indicate unlimited number. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id533945" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id533947" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> std::string &amp; <fo:wrapper id="id354769-bb"/>name_for_position(<fo:inline font-weight="bold">unsigned</fo:inline> position) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns the name that should be associated with positional options at 'position'. Precondition: position &lt; max_total_count() </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id391535"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/program_options/value_semantic.hpp">boost/program_options/value_semantic.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id534006" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> program_options {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="value_semantic">value_semantic</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id309957">value_semantic_codecvt_helper</fo:basic-link>;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id361348-bb">value_semantic_codecvt_helper</fo:basic-link>&lt;<fo:inline font-weight="bold">char</fo:inline>&gt;;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id410043-bb">value_semantic_codecvt_helper</fo:basic-link>&lt;<fo:inline font-weight="bold">wchar_t</fo:inline>&gt;;

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="untyped_value">untyped_value</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link>&lt; T &gt; * <fo:basic-link internal-destination="value">value</fo:basic-link>();
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link>&lt; T &gt; * <fo:basic-link internal-destination="value">value</fo:basic-link>(T *);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link>&lt; T, <fo:inline font-weight="bold">wchar_t</fo:inline> &gt; * <fo:basic-link internal-destination="wvalue">wvalue</fo:basic-link>();
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link>&lt; T, <fo:inline font-weight="bold">wchar_t</fo:inline> &gt; * <fo:basic-link internal-destination="wvalue">wvalue</fo:basic-link>(T *);
&#xA0;&#xA0;&#xA0;&#xA0;BOOST_PROGRAM_OPTIONS_DECL <fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link>&lt; <fo:inline font-weight="bold">bool</fo:inline> &gt; * <fo:basic-link internal-destination="bool_switch">bool_switch</fo:basic-link>();
&#xA0;&#xA0;&#xA0;&#xA0;BOOST_PROGRAM_OPTIONS_DECL <fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link>&lt; <fo:inline font-weight="bold">bool</fo:inline> &gt; * <fo:basic-link internal-destination="bool_switch">bool_switch</fo:basic-link>(<fo:inline font-weight="bold">bool</fo:inline> *);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="value_semantic"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class value_semantic</fo:block></fo:block><fo:block space-after="1em">Class value_semantic <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::value_semantic</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id534409"><fo:block/><fo:block id="id534410" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> value_semantic {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="value_semanticconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id309952-bb">~value_semantic</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id322469-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> std::string <fo:basic-link internal-destination="id306456-bb">name</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id323449-bb">is_zero_tokens</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id286767-bb">is_composing</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id252748-bb">is_implicit</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id421912-bb">is_multitoken</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> 
&#xA0;&#xA0;<fo:basic-link internal-destination="id301567-bb">parse</fo:basic-link>(boost::any &amp;, <fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp;, <fo:inline font-weight="bold">bool</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id283436-bb">apply_default</fo:basic-link>(boost::any &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id226631-bb">notify</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> boost::any &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id534719"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class which specifies how the option's value is to be parsed and converted into C++ types. </fo:block><fo:block id="id534727"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">value_semantic construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="value_semanticconstruct-copy-destruct"/><fo:inline font-family="monospace">value_semantic</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id534742" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id534749" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id534751" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id309952-bb"/>~value_semantic();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id534765"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">value_semantic public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id322469-bb"/><fo:inline font-family="monospace">value_semantic</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id534779" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id534785" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id534788" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> std::string <fo:wrapper id="id306456-bb"/>name() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns the name of the option. The name is only meaningful for automatic help message. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id534820" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id534823" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id323449-bb"/>is_zero_tokens() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns true if value cannot be specified in source at all. Other methods can still set the value somehow, but user can't affect it. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id534861" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id534863" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id286767-bb"/>is_composing() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns true if values from different sources should be composed. Otherwise, value from the first source is used and values from other sources are discarded. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id534901" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id534903" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id252748-bb"/>is_implicit() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns true if explicit value of an option can be omitted. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id534940" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id534942" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id421912-bb"/>is_multitoken() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns true if value can span several token in input source. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id534980" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id534982" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> 
<fo:wrapper id="id301567-bb"/>parse(boost::any &amp; value_store, <fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp; new_tokens, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> utf8) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Parses a group of tokens that specify a value of option. Stores the result in 'value_store', using whatever representation is desired. May be be called several times if value of the same option is specified more than once. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id535036" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id535039" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id283436-bb"/>apply_default(boost::any &amp; value_store) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Called to assign default value to 'value_store'. Returns true if default value is assigned, and false if no default value exists. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id535077" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id535080" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id226631-bb"/>notify(<fo:inline font-weight="bold">const</fo:inline> boost::any &amp; value_store) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Called when final value of an option is determined. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id309957"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template value_semantic_codecvt_helper</fo:block></fo:block><fo:block space-after="1em">Class template value_semantic_codecvt_helper <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::value_semantic_codecvt_helper</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id535142"><fo:block/><fo:block id="id535143" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> charT&gt; 
<fo:inline font-weight="bold">class</fo:inline> value_semantic_codecvt_helper {
<fo:inline font-weight="bold">public</fo:inline>:
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id535172"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Helper class which perform necessary character conversions in the 'parse' method and forwards the data further. </fo:block><fo:block id="id535181"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Specializations</fo:marker><fo:block font-size="10pt">Specializations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id535185" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id535186" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="id361348-bb">Class value_semantic_codecvt_helper&lt;char&gt;</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id535197" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="id410043-bb">Class value_semantic_codecvt_helper&lt;wchar_t&gt;</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id361348-bb"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class value_semantic_codecvt_helper&lt;char&gt;</fo:block></fo:block><fo:block space-after="1em">Class value_semantic_codecvt_helper&lt;char&gt; <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::value_semantic_codecvt_helper&lt;char&gt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id535227"><fo:block/><fo:block id="id535228" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> value_semantic_codecvt_helper&lt;<fo:inline font-weight="bold">char</fo:inline>&gt; {
<fo:inline font-weight="bold">public</fo:inline>:

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id275200-bb">protected member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id263057-bb">xparse</fo:basic-link>(boost::any &amp;, <fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp;) <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id226527-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id226532-bb">parse</fo:basic-link>(boost::any &amp;, <fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp;, <fo:inline font-weight="bold">bool</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id535355"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id535358"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">value_semantic_codecvt_helper protected member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id275200-bb"/><fo:inline font-family="monospace">value_semantic_codecvt_helper</fo:inline> protected member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id535374" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id535380" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id535382" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> 
<fo:wrapper id="id263057-bb"/>xparse(boost::any &amp; value_store, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp; new_tokens) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id535425"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">value_semantic_codecvt_helper private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id226527-bb"/><fo:inline font-family="monospace">value_semantic_codecvt_helper</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id535440" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id535446" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id535448" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id226532-bb"/>parse(boost::any &amp; value_store, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp; new_tokens, <fo:inline font-weight="bold">bool</fo:inline> utf8) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id410043-bb"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class value_semantic_codecvt_helper&lt;wchar_t&gt;</fo:block></fo:block><fo:block space-after="1em">Class value_semantic_codecvt_helper&lt;wchar_t&gt; <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::value_semantic_codecvt_helper&lt;wchar_t&gt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id535510"><fo:block/><fo:block id="id535512" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> value_semantic_codecvt_helper&lt;<fo:inline font-weight="bold">wchar_t</fo:inline>&gt;
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::value_semantic
{
<fo:inline font-weight="bold">public</fo:inline>:

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id306954-bb">protected member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id221580-bb">xparse</fo:basic-link>(boost::any &amp;, <fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::wstring &gt; &amp;) <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id258112-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id258116-bb">parse</fo:basic-link>(boost::any &amp;, <fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp;, <fo:inline font-weight="bold">bool</fo:inline>) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id535644"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id535647"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">value_semantic_codecvt_helper protected member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id306954-bb"/><fo:inline font-family="monospace">value_semantic_codecvt_helper</fo:inline> protected member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id535662" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id535668" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id535670" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">void</fo:inline> 
<fo:wrapper id="id221580-bb"/>xparse(boost::any &amp; value_store, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::wstring &gt; &amp; new_tokens) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id535712"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">value_semantic_codecvt_helper private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id258112-bb"/><fo:inline font-family="monospace">value_semantic_codecvt_helper</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id535728" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id535734" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id535736" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id258116-bb"/>parse(boost::any &amp; value_store, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp; new_tokens, <fo:inline font-weight="bold">bool</fo:inline> utf8) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="untyped_value"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class untyped_value</fo:block></fo:block><fo:block space-after="1em">Class untyped_value <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::untyped_value</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id535796"><fo:block/><fo:block id="id535797" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> untyped_value
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::value_semantic_codecvt_helper&lt; charT &gt;
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="untyped_valueconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id322390-bb">untyped_value</fo:basic-link>(<fo:inline font-weight="bold">bool</fo:inline> = false);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id415126-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;std::string <fo:basic-link internal-destination="id278850-bb">name</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id402093-bb">is_zero_tokens</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id355976-bb">is_composing</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id405358-bb">is_implicit</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id345393-bb">is_multitoken</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id327856-bb">xparse</fo:basic-link>(boost::any &amp;, <fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id244525-bb">apply_default</fo:basic-link>(boost::any &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id303782-bb">notify</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> boost::any &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id536067"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class which specifies a simple handling of a value: the value will have string type and only one token is allowed. </fo:block><fo:block id="id536075"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">untyped_value construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="untyped_valueconstruct-copy-destruct"/><fo:inline font-family="monospace">untyped_value</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id536091" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id536098" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id536100" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id322390-bb"/>untyped_value(<fo:inline font-weight="bold">bool</fo:inline> zero_tokens = false);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id536120"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">untyped_value public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id415126-bb"/><fo:inline font-family="monospace">untyped_value</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id536135" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id536141" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id536143" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::string <fo:wrapper id="id278850-bb"/>name() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id536167" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id536170" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id402093-bb"/>is_zero_tokens() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id536197" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id536199" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id355976-bb"/>is_composing() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id536226" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id536228" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id405358-bb"/>is_implicit() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id536255" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id536257" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id345393-bb"/>is_multitoken() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id536285" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id536287" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id327856-bb"/>xparse(boost::any &amp; value_store, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::string &gt; &amp; new_tokens) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If 'value_store' is already initialized, or new_tokens has more than one elements, throws. Otherwise, assigns the first string from 'new_tokens' to 'value_store', without any modifications. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id536329" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id536331" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id244525-bb"/>apply_default(boost::any &amp; ) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Does nothing. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id536361" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id536363" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id303782-bb"/>notify(<fo:inline font-weight="bold">const</fo:inline> boost::any &amp; ) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Does nothing. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="typed_value"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template typed_value</fo:block></fo:block><fo:block space-after="1em">Class template typed_value <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::typed_value</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id536418"><fo:block/><fo:block id="id536419" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, <fo:inline font-weight="bold">typename</fo:inline> charT = <fo:inline font-weight="bold">char</fo:inline>&gt; 
<fo:inline font-weight="bold">class</fo:inline> typed_value
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::value_semantic_codecvt_helper&lt; charT &gt;
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="typed_valueconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id337354-bb">typed_value</fo:basic-link>(T *);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id429890-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:basic-link internal-destination="id429896-bb">default_value</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> T &amp;) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:basic-link internal-destination="id409360-bb">default_value</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> T &amp;, <fo:inline font-weight="bold">const</fo:inline> std::string &amp;) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:basic-link internal-destination="id329497-bb">notifier</fo:basic-link>(function1&lt; <fo:inline font-weight="bold">void</fo:inline>, <fo:inline font-weight="bold">const</fo:inline> T &amp; &gt;) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:basic-link internal-destination="id427386-bb">composing</fo:basic-link>() ;
&#xA0;&#xA0;<fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:basic-link internal-destination="id320553-bb">implicit</fo:basic-link>() ;
&#xA0;&#xA0;<fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:basic-link internal-destination="id380325-bb">multitoken</fo:basic-link>() ;
&#xA0;&#xA0;<fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:basic-link internal-destination="id370021-bb">zero_tokens</fo:basic-link>() ;
&#xA0;&#xA0;std::string <fo:basic-link internal-destination="id440186-bb">name</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id241145-bb">is_zero_tokens</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id334476-bb">is_composing</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id388193-bb">is_implicit</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id419316-bb">is_multitoken</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id354937-bb">xparse</fo:basic-link>(boost::any &amp;, <fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::basic_string&lt; charT &gt; &gt; &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id350566-bb">apply_default</fo:basic-link>(boost::any &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id277875-bb">notify</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> boost::any &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id536885"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class which handles value of a specific type. </fo:block><fo:block id="id536892"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">typed_value construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="typed_valueconstruct-copy-destruct"/><fo:inline font-family="monospace">typed_value</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id536907" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id536914" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id536916" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id337354-bb"/>typed_value(T * store_to);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Ctor. The 'store_to' parameter tells where to store the value when it's known. The parameter can be NULL. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id536934"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">typed_value public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id429890-bb"/><fo:inline font-family="monospace">typed_value</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id536949" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id536955" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id536957" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:wrapper id="id429896-bb"/>default_value(<fo:inline font-weight="bold">const</fo:inline> T &amp; v) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specifies default value, which will be used if none is explicitly specified. The type 'T' should provide operator&lt;&lt; for ostream. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id536994" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id536996" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:wrapper id="id409360-bb"/>default_value(<fo:inline font-weight="bold">const</fo:inline> T &amp; v, <fo:inline font-weight="bold">const</fo:inline> std::string &amp; textual) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specifies default value, which will be used if none is explicitly specified. Unlike the above overload, the type 'T' need not provide operator&lt;&lt; for ostream, but textual representation of default value must be provided by the user. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id537041" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id537043" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:wrapper id="id329497-bb"/>notifier(function1&lt; <fo:inline font-weight="bold">void</fo:inline>, <fo:inline font-weight="bold">const</fo:inline> T &amp; &gt; f) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specifies a function to be called when the final value is determined. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id537085" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id537087" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:wrapper id="id427386-bb"/>composing() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specifies that the value is composing. See the 'is_composing' method for explanation. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id537114" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id537116" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:wrapper id="id320553-bb"/>implicit() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specifies that the value is implicit. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id537143" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id537145" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:wrapper id="id380325-bb"/>multitoken() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specifies that the value can span multiple tokens. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id537172" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id537174" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link> * <fo:wrapper id="id370021-bb"/>zero_tokens() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id537197" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id537200" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::string <fo:wrapper id="id440186-bb"/>name() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id537223" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id537226" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id241145-bb"/>is_zero_tokens() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id537252" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id537255" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id334476-bb"/>is_composing() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id537281" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id537283" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id388193-bb"/>is_implicit() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id537310" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>12.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id537312" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id419316-bb"/>is_multitoken() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id537340" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>13.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id537342" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id354937-bb"/>xparse(boost::any &amp; value_store, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::vector&lt; std::basic_string&lt; charT &gt; &gt; &amp; new_tokens) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Creates an instance of the 'validator' class and calls its operator() to perform athe ctual conversion. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id537382" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>14.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id537385" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id350566-bb"/>apply_default(boost::any &amp; value_store) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If default value was specified via previous call to 'default_value', stores that value into 'value_store'. Returns true if default value was stored. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id537424" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>15.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id537426" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id277875-bb"/>notify(<fo:inline font-weight="bold">const</fo:inline> boost::any &amp; value_store) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If an address of variable to store value was specified when creating *this, stores the value there. Otherwise, does nothing. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="value"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function value</fo:block></fo:block><fo:block space-after="1em">Function value <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::value</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id537481"><fo:block/><fo:block id="id537483" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link>&lt; T &gt; * value();
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link>&lt; T &gt; * value(T * v);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id537536"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Creates a typed_value&lt;T&gt; instance. This function is the primary method to create value_semantic instance for a specific type, which can later be passed to 'option_description' constructor. The second overload is used when it's additionally desired to store the value of option into program variable. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="wvalue"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function wvalue</fo:block></fo:block><fo:block space-after="1em">Function wvalue <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::wvalue</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id537571"><fo:block/><fo:block id="id537572" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link>&lt; T, <fo:inline font-weight="bold">wchar_t</fo:inline> &gt; * wvalue();
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link>&lt; T, <fo:inline font-weight="bold">wchar_t</fo:inline> &gt; * wvalue(T * v);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id537639"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Creates a typed_value&lt;T&gt; instance. This function is the primary method to create value_semantic instance for a specific type, which can later be passed to 'option_description' constructor. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="bool_switch"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function bool_switch</fo:block></fo:block><fo:block space-after="1em">Function bool_switch <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::bool_switch</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id537670"><fo:block/><fo:block id="id537672" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
BOOST_PROGRAM_OPTIONS_DECL <fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link>&lt; <fo:inline font-weight="bold">bool</fo:inline> &gt; * bool_switch();
BOOST_PROGRAM_OPTIONS_DECL <fo:basic-link internal-destination="typed_value">typed_value</fo:basic-link>&lt; <fo:inline font-weight="bold">bool</fo:inline> &gt; * bool_switch(<fo:inline font-weight="bold">bool</fo:inline> * v);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id537722"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Works the same way as the 'value&lt;bool&gt;' function, but the created value_semantic won't accept any explicit value. So, if the option is present on the command line, the value will be 'true'. </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id361047"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/program_options/variables_map.hpp">boost/program_options/variables_map.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id537752" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> program_options {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="variable_value">variable_value</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="abstract_variables_map">abstract_variables_map</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="variables_map">variables_map</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;BOOST_PROGRAM_OPTIONS_DECL <fo:inline font-weight="bold">void</fo:inline> 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id281355">store</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; <fo:inline font-weight="bold">char</fo:inline> &gt; &amp;, <fo:basic-link internal-destination="variables_map">variables_map</fo:basic-link> &amp;, <fo:inline font-weight="bold">bool</fo:inline> = false);
&#xA0;&#xA0;&#xA0;&#xA0;BOOST_PROGRAM_OPTIONS_DECL <fo:inline font-weight="bold">void</fo:inline> 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id386334">store</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; <fo:inline font-weight="bold">wchar_t</fo:inline> &gt; &amp;, <fo:basic-link internal-destination="variables_map">variables_map</fo:basic-link> &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;BOOST_PROGRAM_OPTIONS_DECL <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="notify">notify</fo:basic-link>(<fo:basic-link internal-destination="variables_map">variables_map</fo:basic-link> &amp;);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="variable_value"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class variable_value</fo:block></fo:block><fo:block space-after="1em">Class variable_value <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::variable_value</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id537965"><fo:block/><fo:block id="id537966" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> variable_value {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="variable_valueconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id320650-bb">variable_value</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id320653-bb">variable_value</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> boost::any &amp;, <fo:inline font-weight="bold">bool</fo:inline>);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id338122-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">const</fo:inline> T &amp; <fo:basic-link internal-destination="id338128-bb">as</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; T &amp; <fo:basic-link internal-destination="id429394-bb">as</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id331097-bb">empty</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id425639-bb">defaulted</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> boost::any &amp; <fo:basic-link internal-destination="id246647-bb">value</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;boost::any &amp; <fo:basic-link internal-destination="id335698-bb">value</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id538193"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class holding value of option. Contains details about how the value is set and allows to conveniently obtain the value. </fo:block><fo:block id="id538201"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">variable_value construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="variable_valueconstruct-copy-destruct"/><fo:inline font-family="monospace">variable_value</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id538218" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id538224" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id538226" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id320650-bb"/>variable_value();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id538240" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id538242" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id320653-bb"/>variable_value(<fo:inline font-weight="bold">const</fo:inline> boost::any &amp; v, <fo:inline font-weight="bold">bool</fo:inline> defaulted);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id538268"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">variable_value public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id338122-bb"/><fo:inline font-family="monospace">variable_value</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id538283" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id538289" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id538292" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">const</fo:inline> T &amp; <fo:wrapper id="id338128-bb"/>as() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If stored value if of type T, returns that value. Otherwise, throws boost::bad_any_cast exception. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id538338" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id538340" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; T &amp; <fo:wrapper id="id429394-bb"/>as() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id538376" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id538378" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id331097-bb"/>empty() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id538405" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id538407" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id425639-bb"/>defaulted() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns true if the value was not explicitly given, but has default value. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id538438" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id538440" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> boost::any &amp; <fo:wrapper id="id246647-bb"/>value() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns the contained value. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id538472" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id538474" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">boost::any &amp; <fo:wrapper id="id335698-bb"/>value() ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns the contained value. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="abstract_variables_map"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class abstract_variables_map</fo:block></fo:block><fo:block space-after="1em">Class abstract_variables_map <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::abstract_variables_map</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id538513"><fo:block/><fo:block id="id538514" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> abstract_variables_map {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="abstract_variables_mapconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id228728-bb">abstract_variables_map</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id228731-bb">abstract_variables_map</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="abstract_variables_map">abstract_variables_map</fo:basic-link> *);
&#xA0;&#xA0;<fo:basic-link internal-destination="id225470-bb">~abstract_variables_map</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id421775-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="variable_value">variable_value</fo:basic-link> &amp; <fo:basic-link internal-destination="id421781-bb"><fo:inline font-weight="bold">operator</fo:inline>[]</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id436274-bb">next</fo:basic-link>(<fo:basic-link internal-destination="abstract_variables_map">abstract_variables_map</fo:basic-link> *) ;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id225473-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="variable_value">variable_value</fo:basic-link> &amp; <fo:basic-link internal-destination="id325125-bb">get</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id538730"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Implements string-&gt;string mapping with convenient value casting facilities. </fo:block><fo:block id="id538740"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">abstract_variables_map construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="abstract_variables_mapconstruct-copy-destruct"/><fo:inline font-family="monospace">abstract_variables_map</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id538756" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id538762" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id538765" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id228728-bb"/>abstract_variables_map();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id538779" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id538781" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id228731-bb"/>abstract_variables_map(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="abstract_variables_map">abstract_variables_map</fo:basic-link> * next);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id538809" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id538812" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id225470-bb"/>~abstract_variables_map();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id538825"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">abstract_variables_map public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id421775-bb"/><fo:inline font-family="monospace">abstract_variables_map</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id538841" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id538846" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id538849" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="variable_value">variable_value</fo:basic-link> &amp; <fo:wrapper id="id421781-bb"/><fo:inline font-weight="bold">operator</fo:inline>[](<fo:inline font-weight="bold">const</fo:inline> std::string &amp; name) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Obtains the value of variable 'name', from *this and possibly from the chain of variable maps.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id538902" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id538904" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if there's no value in *this.<fo:list-block id="id538908" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id538909" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if there's next variable map, returns value from it</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id538914" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>otherwise, returns empty value</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id538919" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id538920" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if there's defaulted value<fo:list-block id="id538925" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id538926" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if there's next varaible map, which has a non-defauled value, return that</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id538931" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>otherwise, return value from *this</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id538936" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id538937" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if there's a non-defauled value, returns it. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id538941" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id538944" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id436274-bb"/>next(<fo:basic-link internal-destination="abstract_variables_map">abstract_variables_map</fo:basic-link> * next) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sets next variable map, which will be used to find variables not found in *this. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id538977"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">abstract_variables_map private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id225473-bb"/><fo:inline font-family="monospace">abstract_variables_map</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id538992" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id538998" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id539000" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="variable_value">variable_value</fo:basic-link> &amp; <fo:wrapper id="id325125-bb"/>get(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; name) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns value of variable 'name' stored in *this, or empty value otherwise. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="variables_map"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class variables_map</fo:block></fo:block><fo:block space-after="1em">Class variables_map <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::variables_map</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id539072"><fo:block/><fo:block id="id539073" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> variables_map
  :  : <fo:inline font-weight="bold">public</fo:inline> boost::program_options::abstract_variables_map
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="variables_mapconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id330558-bb">variables_map</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id341365-bb">variables_map</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="abstract_variables_map">abstract_variables_map</fo:basic-link> *);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id310840-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="variable_value">variable_value</fo:basic-link> &amp; <fo:basic-link internal-destination="id374310-bb"><fo:inline font-weight="bold">operator</fo:inline>[]</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;) <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id361413-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="variable_value">variable_value</fo:basic-link> &amp; <fo:basic-link internal-destination="id225736-bb">get</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::string &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id539255"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Concrete variables map which store variables in real map. </fo:block><fo:block id="id539262"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">variables_map construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="variables_mapconstruct-copy-destruct"/><fo:inline font-family="monospace">variables_map</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id539279" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id539285" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id539287" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id330558-bb"/>variables_map();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id539301" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id539304" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id341365-bb"/>variables_map(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="abstract_variables_map">abstract_variables_map</fo:basic-link> * next);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id539332"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">variables_map public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id310840-bb"/><fo:inline font-family="monospace">variables_map</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id539346" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id539352" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id539355" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="variable_value">variable_value</fo:basic-link> &amp; <fo:wrapper id="id374310-bb"/><fo:inline font-weight="bold">operator</fo:inline>[](<fo:inline font-weight="bold">const</fo:inline> std::string &amp; name) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Obtains the value of variable 'name', from *this and possibly from the chain of variable maps.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id539408" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id539409" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if there's no value in *this.<fo:list-block id="id539413" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id539414" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if there's next variable map, returns value from it</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id539419" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>otherwise, returns empty value</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id539425" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id539426" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if there's defaulted value<fo:list-block id="id539430" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id539431" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if there's next varaible map, which has a non-defauled value, return that</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id539436" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>otherwise, return value from *this</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id539441" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id539442" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if there's a non-defauled value, returns it. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id539447"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">variables_map private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id361413-bb"/><fo:inline font-family="monospace">variables_map</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id539462" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id539468" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id539470" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="variable_value">variable_value</fo:basic-link> &amp; <fo:wrapper id="id225736-bb"/>get(<fo:inline font-weight="bold">const</fo:inline> std::string &amp; name) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Implementation of abstract_variables_map::get which does 'find' in *this. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id281355"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function store</fo:block></fo:block><fo:block space-after="1em">Function store <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::store</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id539534"><fo:block/><fo:block id="id539535" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
BOOST_PROGRAM_OPTIONS_DECL <fo:inline font-weight="bold">void</fo:inline> 
store(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; <fo:inline font-weight="bold">char</fo:inline> &gt; &amp; options, <fo:basic-link internal-destination="variables_map">variables_map</fo:basic-link> &amp; m, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> utf8 = false);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id539587"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Stores in 'm' all options that are defined in 'options'. If 'm' already has a non-defaulted value of an option, that value is not changed, even if 'options' specify some value. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id386334"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function store</fo:block></fo:block><fo:block space-after="1em">Function store <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::store</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id539614"><fo:block/><fo:block id="id539615" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
BOOST_PROGRAM_OPTIONS_DECL <fo:inline font-weight="bold">void</fo:inline> 
store(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="basic_parsed_options">basic_parsed_options</fo:basic-link>&lt; <fo:inline font-weight="bold">wchar_t</fo:inline> &gt; &amp; options, <fo:basic-link internal-destination="variables_map">variables_map</fo:basic-link> &amp; m);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id539660"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Stores in 'm' all options that are defined in 'options'. If 'm' already has a non-defaulted value of an option, that value is not changed, even if 'options' specify some value. This is wide character variant. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="notify"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function notify</fo:block></fo:block><fo:block space-after="1em">Function notify <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::program_options::notify</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id539687"><fo:block/><fo:block id="id539688" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
BOOST_PROGRAM_OPTIONS_DECL <fo:inline font-weight="bold">void</fo:inline> notify(<fo:basic-link internal-destination="variables_map">variables_map</fo:basic-link> &amp; m);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id539711"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Runs all 'notify' function for options in 'm'. </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id401803"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/program_options/version.hpp">boost/program_options/version.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id539735" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">

<fo:basic-link internal-destination="id401809">BOOST_PROGRAM_OPTIONS_VERSION</fo:basic-link></fo:block><fo:block break-before="page"><fo:block id="id401809"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Macro BOOST_PROGRAM_OPTIONS_VERSION</fo:block></fo:block><fo:block space-after="1em">Macro BOOST_PROGRAM_OPTIONS_VERSION <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>BOOST_PROGRAM_OPTIONS_VERSION</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id539766"><fo:block/><fo:block id="id539767" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">BOOST_PROGRAM_OPTIONS_VERSION</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id539773"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The version of the source interface. The value will be incremented whenever a change is made which might cause compilation errors for existing code. </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Ref</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Ref</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="ref"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Boost.Ref</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Jaakko J&#xE4;rvi</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Peter Dimov</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Douglas Gregor</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Dave Abrahams</fo:block></fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 1999, 2000 Jaakko J&#xE4;rvi</fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2001, 2002 Peter Dimov</fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2002 David Abrahams</fo:block><fo:block><fo:block id="id539846"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Permission to copy, use, modify, sell and distribute this
      software is granted provided this copyright notice appears in
      all copies.  This software is provided "as is" without express
      or implied warranty, and with no claim as to its suitability for
      any purpose.
      </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="ref.intro"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="17.28pt">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The Ref library is a small library that is useful for passing
  references to function templates (algorithms) that would usually
  take copies of their arguments. It defines the class template
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">boost::reference_wrapper&lt;T&gt;</fo:basic-link></fo:inline>,
  the two functions
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="id376299">boost::ref</fo:basic-link></fo:inline> and
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="cref">boost::cref</fo:basic-link></fo:inline> that return
  instances of <fo:inline font-family="monospace">boost::reference_wrapper&lt;T&gt;</fo:inline>, and the
  two traits classes
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="is_reference_wrapper">boost::is_reference_wrapper&lt;T&gt;</fo:basic-link></fo:inline>
  and
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="unwrap_reference">boost::unwrap_reference&lt;T&gt;</fo:basic-link></fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The purpose of
  <fo:inline font-family="monospace">boost::reference_wrapper&lt;T&gt;</fo:inline> is to
  contain a reference to an object of type T. It is primarily used to
  "feed" references to function templates (algorithms) that take their
  parameter by value.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To support this usage,
  <fo:inline font-family="monospace">boost::reference_wrapper&lt;T&gt;</fo:inline> provides an implicit
  conversion to <fo:inline font-family="monospace">T&amp;</fo:inline>. This usually allows the function
  templates to work on references unmodified.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">boost::reference_wrapper&lt;T&gt;</fo:inline> is
  both CopyConstructible and Assignable (ordinary references are not
  Assignable).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The expression <fo:inline font-family="monospace">boost::ref(x)</fo:inline>
  returns a
  <fo:inline font-family="monospace">boost::reference_wrapper&lt;X&gt;(x)</fo:inline> where X
  is the type of x. Similarly,
  <fo:inline font-family="monospace">boost::cref(x)</fo:inline> returns a
  <fo:inline font-family="monospace">boost::reference_wrapper&lt;X const&gt;(x)</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The expression
  <fo:inline font-family="monospace">boost::is_reference_wrapper&lt;T&gt;::value</fo:inline>
  is true if T is a <fo:inline font-family="monospace">reference_wrapper</fo:inline>, and
  false otherwise.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The type-expression
  <fo:inline font-family="monospace">boost::unwrap_reference&lt;T&gt;::type</fo:inline> is T::type if T
  is a <fo:inline font-family="monospace">reference_wrapper</fo:inline>, T otherwise.</fo:block></fo:block><fo:block id="ref.reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Reference</fo:marker><fo:block font-size="17.28pt">Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="header.boost.ref.hpp"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/ref.hpp">boost/ref.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id540076" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>;
&#xA0;&#xA0;reference_wrapper&lt;T&gt; <fo:basic-link internal-destination="id376299">ref</fo:basic-link>(T&amp;);
&#xA0;&#xA0;reference_wrapper&lt;T <fo:inline font-weight="bold">const</fo:inline>&gt; <fo:basic-link internal-destination="cref">cref</fo:basic-link>(T <fo:inline font-weight="bold">const</fo:inline>&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="is_reference_wrapper">is_reference_wrapper</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="unwrap_reference">unwrap_reference</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="reference_wrapper"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template reference_wrapper</fo:block></fo:block><fo:block space-after="1em">Class template reference_wrapper <fo:inline font-family="serif">--</fo:inline> 
        Contains a reference to an object of type
        <fo:inline font-family="monospace">T</fo:inline>. 
      </fo:block><fo:block>boost::reference_wrapper</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id540236"><fo:block/><fo:block id="id540237" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; 
<fo:inline font-weight="bold">class</fo:inline> reference_wrapper {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="reference_wrapperconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">explicit</fo:inline> <fo:basic-link internal-destination="id177704-bb">reference_wrapper</fo:basic-link>(T&amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id274636-bb">access</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id244380-bb"><fo:inline font-weight="bold">operator</fo:inline> T&amp;</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;T&amp; <fo:basic-link internal-destination="id434315-bb">get</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;T* <fo:basic-link internal-destination="id231874-bb">get_pointer</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};

<fo:inline font-style="italic">// <fo:basic-link internal-destination="id376296-bb">constructors</fo:basic-link></fo:inline>
reference_wrapper&lt;T&gt; <fo:basic-link internal-destination="id376299">ref</fo:basic-link>(T&amp;);
reference_wrapper&lt;T <fo:inline font-weight="bold">const</fo:inline>&gt; <fo:basic-link internal-destination="cref">cref</fo:basic-link>(T <fo:inline font-weight="bold">const</fo:inline>&amp;);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id540429"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link></fo:inline>
        is primarily used to "feed" references to function templates
        (algorithms) that take their parameter by value.  It provides
        an implicit conversion to
        <fo:inline font-family="monospace">T&amp;</fo:inline>, which usually allows
        the function templates to work on references
        unmodified.</fo:block><fo:block id="id540457"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">reference_wrapper construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="reference_wrapperconstruct-copy-destruct"/><fo:inline font-family="monospace">reference_wrapper</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id540474" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id540480" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id540482" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">explicit</fo:inline> <fo:wrapper id="id177704-bb"/>reference_wrapper(T&amp; t);</fo:block></fo:block><fo:list-block id="id540503" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id540507" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Constructs a
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link></fo:inline>
        object that stores a reference to
        <fo:inline font-family="monospace">t</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id540533" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Does not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id540541"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">reference_wrapper access</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id274636-bb"/><fo:inline font-family="monospace">reference_wrapper</fo:inline> access</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id540556" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id540562" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id540564" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id244380-bb"/><fo:inline font-weight="bold">operator</fo:inline> T&amp;() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id540589" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id540593" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The stored reference.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id540601" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Does not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id540609" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id540611" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">T&amp; <fo:wrapper id="id434315-bb"/>get() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id540635" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id540638" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The stored reference.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id540646" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Does not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id540654" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id540656" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">T* <fo:wrapper id="id231874-bb"/>get_pointer() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id540680" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id540683" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A pointer to the object referenced by the stored reference.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id540692" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Does not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id540700"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">reference_wrapper constructors</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id376296-bb"/><fo:inline font-family="monospace">reference_wrapper</fo:inline> constructors</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id540715" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id540721" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id540723" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">reference_wrapper&lt;T&gt; <fo:wrapper id="id376299"/>ref(T&amp; t);</fo:block></fo:block><fo:list-block id="id540741" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id540745" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;T&gt;(t)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id540763" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Does not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id540771" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id540773" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">reference_wrapper&lt;T <fo:inline font-weight="bold">const</fo:inline>&gt; <fo:wrapper id="cref"/>cref(T <fo:inline font-weight="bold">const</fo:inline>&amp; t);</fo:block></fo:block><fo:list-block id="id540804" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id540807" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link>&lt;T const&gt;(t)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id540826" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Does not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_reference_wrapper"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template is_reference_wrapper</fo:block></fo:block><fo:block space-after="1em">Class template is_reference_wrapper <fo:inline font-family="serif">--</fo:inline> Determine if a type <fo:inline font-family="monospace">T</fo:inline> is an instantiation of <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link></fo:inline>.</fo:block><fo:block>boost::is_reference_wrapper</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id540872"><fo:block/><fo:block id="id540873" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; 
<fo:inline font-weight="bold">class</fo:inline> is_reference_wrapper {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// static constants</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">static</fo:inline> <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> value = unspecified;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id540928"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">value</fo:inline> static
        constant will be <fo:inline font-family="monospace">true</fo:inline> iff the
        type <fo:inline font-family="monospace">T</fo:inline> is a specialization of
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link></fo:inline>.</fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="unwrap_reference"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template unwrap_reference</fo:block></fo:block><fo:block space-after="1em">Class template unwrap_reference <fo:inline font-family="serif">--</fo:inline> Find the type in a <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link></fo:inline>.</fo:block><fo:block>boost::unwrap_reference</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id540998"><fo:block/><fo:block id="id540999" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; 
<fo:inline font-weight="bold">class</fo:inline> unwrap_reference {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">unspecified</fo:inline> type;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id541045"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The typedef <fo:inline font-family="monospace">type</fo:inline> is
        <fo:inline font-family="monospace">T::type</fo:inline> if
        <fo:inline font-family="monospace">T</fo:inline> is a
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="reference_wrapper">reference_wrapper</fo:basic-link></fo:inline>,
        <fo:inline font-family="monospace">T</fo:inline> otherwise.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="ref.ack"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Acknowledgements</fo:marker><fo:block font-size="17.28pt">Acknowledgements</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="id376299">ref</fo:basic-link> and <fo:basic-link internal-destination="cref">cref</fo:basic-link>
  were originally part of the <fo:basic-link external-destination="../../libs/tuple/index.html">Tuple</fo:basic-link> library
  by Jaakko J&#xE4;rvi. They were "promoted to boost:: status" by
  Peter Dimov because they are generally useful.  Douglas Gregor and
  Dave Abrahams contributed
  <fo:basic-link internal-destination="is_reference_wrapper">is_reference_wrapper</fo:basic-link> and
  <fo:basic-link internal-destination="unwrap_reference">unwrap_reference</fo:basic-link>.</fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Signals</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Signals</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="signals"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Boost.Signals</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Douglas Gregor</fo:block></fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2001-2004 Douglas Gregor</fo:block><fo:block><fo:block id="id541179"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use, modification and distribution is subject to the Boost
    Software License, Version 1.0. (See accompanying file
    <fo:inline font-family="monospace">LICENSE_1_0.txt</fo:inline> or copy at <fo:basic-link external-destination="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</fo:basic-link>)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id541200"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="17.28pt">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The Boost.Signals library is an implementation of a managed
signals and slots system. Signals represent callbacks with multiple
targets, and are also called publishers or events in similar
systems. Signals are connected to some set of slots, which are
callback receivers (also called event targets or subscribers), which
are called when the signal is "emitted."</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Signals and slots are managed, in that signals and slots (or,
more properly, objects that occur as part of the slots) track all
connections and are capable of automatically disconnecting signal/slot
connections when either is destroyed. This enables the user to make
signal/slot connections without expending a great effort to manage the
lifetimes of those connections with regard to the lifetimes of all
objects involved.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When signals are connected to multiple slots, there is a
question regarding the relationship between the return values of the
slots and the return value of the signals. Boost.Signals allows the
user to specify the manner in which multiple return values are
combined.</fo:block></fo:block><fo:block id="signals.tutorial"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Tutorial</fo:marker><fo:block font-size="17.28pt">Tutorial</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id541262"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">How to Read this Tutorial</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This tutorial is not meant to be read linearly. Its top-level
structure roughly separates different concepts in the library
(e.g., handling calling multiple slots, passing values to and from
slots) and in each of these concepts the basic ideas are presented
first and then more complex uses of the library are described
later. Each of the sections is marked <fo:inline font-style="italic">Beginner</fo:inline>,
<fo:inline font-style="italic">Intermediate</fo:inline>, or <fo:inline font-style="italic">Advanced</fo:inline> to help guide the
reader. The <fo:inline font-style="italic">Beginner</fo:inline> sections include information that all
library users should know; one can make good use of the Signals
library after having read only the <fo:inline font-style="italic">Beginner</fo:inline> sections. The
<fo:inline font-style="italic">Intermediate</fo:inline> sections build on the <fo:inline font-style="italic">Beginner</fo:inline>
sections with slightly more complex uses of the library. Finally,
the <fo:inline font-style="italic">Advanced</fo:inline> sections detail very advanced uses of the
Signals library, that often require a solid working knowledge of
the <fo:inline font-style="italic">Beginner</fo:inline> and <fo:inline font-style="italic">Intermediate</fo:inline> topics; most users
will not need to read the <fo:inline font-style="italic">Advanced</fo:inline> sections.</fo:block></fo:block><fo:block id="id541327"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Compatibility Note</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Boost.Signals has two syntactical forms: the preferred form and
the compatibility form. The preferred form fits more closely with the
C++ language and reduces the number of separate template parameters
that need to be considered, often improving readability; however, the
preferred form is not supported on all platforms due to compiler
bugs. The compatible form will work on all compilers supported by
Boost.Signals. Consult the table below to determine which syntactic
form to use for your compiler. Users of Boost.Function, please note
that the preferred syntactic form in Signals is equivalent to that of
Function's preferred syntactic form.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If your compiler does not appear in this list, please try the
preferred syntax and report your results to the Boost list so that
we can keep this table up-to-date.</fo:block><fo:block id="id541350" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:list-block id="id541369" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id541370" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>GNU C++ 2.95.x, 3.0.x, 3.1.x</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id541374" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Comeau C++ 4.2.45.2</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id541378" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>SGI MIPSpro 7.3.0</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id541382" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Intel C++ 5.0, 6.0</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id541387" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Compaq's cxx 6.2</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id541391" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Microsoft Visual C++ 7.1</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:list-block id="id541396" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id541397" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-style="italic">Any compiler supporting the preferred syntax</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id541403" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Microsoft Visual C++ 6.0, 7.0</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id541407" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Borland C++ 5.5.1</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id541412" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Sun WorkShop 6 update 2 C++ 5.3</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id541416" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Metrowerks CodeWarrior 8.1</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="id541420"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Hello, World! (Beginner)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following example writes "Hello, World!" using signals and
slots. First, we create a signal <fo:inline font-family="monospace">sig</fo:inline>, a signal that
takes no arguments and has a void return value. Next, we connect
the <fo:inline font-family="monospace">hello</fo:inline> function object to the signal using the
<fo:inline font-family="monospace">connect</fo:inline> method. Finally, use the signal
<fo:inline font-family="monospace">sig</fo:inline> like a function to call the slots, which in turns
invokes <fo:inline font-family="monospace">HelloWorld::operator()</fo:inline> to print "Hello,
World!".</fo:block><fo:block id="id541465" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id541484" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct HelloWorld 
{
  void operator()() const 
  { 
    std::cout &lt;&lt; "Hello, World!" &lt;&lt; std::endl;
  } 
};

// ...

// Signal with no arguments and a void return value
<fo:basic-link internal-destination="signal">boost::signal</fo:basic-link>&lt;void ()&gt; sig;

// Connect a HelloWorld slot
HelloWorld hello;
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(hello);

// Call all of the slots
sig();
</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id541521" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct HelloWorld 
{
  void operator()() const 
  { 
    std::cout &lt;&lt; "Hello, World!" &lt;&lt; std::endl;
  } 
};

// ...

// Signal with no arguments and a void return value
<fo:basic-link internal-destination="signalN">boost::signal0</fo:basic-link>&lt;void&gt; sig;

// Connect a HelloWorld slot
HelloWorld hello;
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(hello);

// Call all of the slots
sig();
</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="id541554"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Calling multiple slots</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id541558"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Connecting multiple slots (Beginner)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calling a single slot from a signal isn't very interesting, so
we can make the Hello, World program more interesting by splitting
the work of printing "Hello, World!" into two completely separate
slots. The first slot will print "Hello" and may look like
this:</fo:block><fo:block id="id541569" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct Hello 
{
  void operator()() const
  {
    std::cout &lt;&lt; "Hello";
  }
};
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The second slot will print ", World!" and a newline, to complete
the program. The second slot may look like this:</fo:block><fo:block id="id541581" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct World
{
  void operator()() const
  {
    std::cout &lt;&lt; ", World!" &lt;&lt; std::endl;
  }
};
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Like in our previous example, we can create a signal
<fo:inline font-family="monospace">sig</fo:inline> that takes no arguments and has a
<fo:inline font-family="monospace">void</fo:inline> return value. This time, we connect both a
<fo:inline font-family="monospace">hello</fo:inline> and a <fo:inline font-family="monospace">world</fo:inline> slot to the same
signal, and when we call the signal both slots will be called.</fo:block><fo:block id="id541620" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id541638" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="signal">boost::signal</fo:basic-link>&lt;void ()&gt; sig;

sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(Hello());
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(World());

sig();
</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id541669" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="signalN">boost::signal0</fo:basic-link>&lt;void&gt; sig;

sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(Hello());
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(World());

sig();
</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">By default, slots are called in first-in first-out (FIFO) order,
so the output of this program will be as expected:</fo:block><fo:block id="id541702" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
Hello, World!
</fo:block></fo:block><fo:block id="id541707"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Ordering slot call groups (Intermediate)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Slots are free to have side effects, and that can mean that some
slots will have to be called before others even if they are not connected in that order. The Boost.Signals
library allows slots to be placed into groups that are ordered in
some way. For our Hello, World program, we want "Hello" to be
printed before ", World!", so we put "Hello" into a group that must
be executed before the group that ", World!" is in. To do this, we
can supply an extra parameter at the beginning of the
<fo:inline font-family="monospace">connect</fo:inline> call that specifies the group. Group values
are, by default, <fo:inline font-family="monospace">int</fo:inline>s, and are ordered by the integer
&lt; relation. Here's how we construct Hello, World:</fo:block><fo:block id="id541748" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id541767" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="signal">boost::signal</fo:basic-link>&lt;void ()&gt; sig;
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(1, World());
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(0, Hello());
sig();
</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id541797" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="signalN">boost::signal0</fo:basic-link>&lt;void&gt; sig;
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(1, World());
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(0, Hello());
sig();
</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This program will correctly print "Hello, World!", because the
<fo:inline font-family="monospace">Hello</fo:inline> object is in group 0, which precedes group 1 where
the <fo:inline font-family="monospace">World</fo:inline> object resides. The group
parameter is, in fact, optional. We omitted it in the first Hello,
World example because it was unnecessary when all of the slots are
independent. So what happens if we mix calls to connect that use the
group parameter and those that don't? The "unnamed" slots (i.e., those
that have been connected without specifying a group name) can be
placed at the front or back of the slot list (by passing
<fo:inline font-family="monospace">boost::signals::at_front</fo:inline> or <fo:inline font-family="monospace">boost::signals::at_back</fo:inline>
as the last parameter to <fo:inline font-family="monospace"><fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link></fo:inline>, respectively), and defaults to the end of the list. When
a group is specified, the final parameter describes where the slot
will be placed within the group ordering. If we add a new slot
to our example like this:</fo:block><fo:block id="id541880" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct GoodMorning
{
  void operator()() const
  {
    std::cout &lt;&lt; "... and good morning!" &lt;&lt; std::endl;
  }
};

sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(GoodMorning());
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">... we will get the result we wanted:</fo:block><fo:block id="id541899" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
Hello, World!
... and good morning!
</fo:block></fo:block></fo:block><fo:block id="id541904"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Passing values to and from slots</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id541908"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Slot Arguments (Beginner)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Signals can propagate arguments to each of the slots they call.
For instance, a signal that propagates mouse motion events might
want to pass along the new mouse coordinates and whether the mouse
buttons are pressed.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As an example, we'll create a signal that passes two
<fo:inline font-family="monospace">float</fo:inline> arguments to its slots. Then we'll create a few
slots that print the results of various arithmetic operations on
these values.</fo:block><fo:block id="id541931" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
void print_sum(float x, float y)
{
  std::cout &lt;&lt; "The sum is " &lt;&lt; x+y &lt;&lt; std::endl;
}

void print_product(float x, float y)
{
  std::cout &lt;&lt; "The product is " &lt;&lt; x*y &lt;&lt; std::endl;
}

void print_difference(float x, float y)
{
  std::cout &lt;&lt; "The difference is " &lt;&lt; x-y &lt;&lt; std::endl;
}

void print_quotient(float x, float y)
{
  std::cout &lt;&lt; "The quotient is " &lt;&lt; x/y &lt;&lt; std::endl;
}
</fo:block><fo:block id="id541949" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id541968" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="signal">boost::signal</fo:basic-link>&lt;void (float, float)&gt; sig;

sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;print_sum);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;print_product);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;print_difference);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;print_quotient);

sig(5, 3);
</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id542017" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="signalN">boost::signal2</fo:basic-link>&lt;void, float, float&gt; sig;

sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;print_sum);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;print_product);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;print_difference);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;print_quotient);

sig(5, 3);
</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This program will print out the following:</fo:block><fo:block id="id542068" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
The sum is 8
The difference is 2
The product is 15
The quotient is 1.66667
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">So any values that are given to <fo:inline font-family="monospace">sig</fo:inline> when it is
called like a function are passed to each of the slots. We have to
declare the types of these values up front when we create the
signal. The type <fo:inline font-family="monospace"><fo:basic-link internal-destination="signal">boost::signal</fo:basic-link>&lt;void (float,
float)&gt;</fo:inline> means that the signal has a <fo:inline font-family="monospace">void</fo:inline>
return value and takes two <fo:inline font-family="monospace">float</fo:inline> values. Any slot
connected to <fo:inline font-family="monospace">sig</fo:inline> must therefore be able to take two
<fo:inline font-family="monospace">float</fo:inline> values.</fo:block></fo:block><fo:block id="id542128"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Signal Return Values (Advanced)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Just as slots can receive arguments, they can also return
values. These values can then be returned back to the caller of the
signal through a <fo:inline font-style="italic">combiner</fo:inline>. The combiner is a mechanism
that can take the results of calling slots (there many be no
results or a hundred; we don't know until the program runs) and
coalesces them into a single result to be returned to the caller.
The single result is often a simple function of the results of the
slot calls: the result of the last slot call, the maximum value
returned by any slot, or a container of all of the results are some
possibilities.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">We can modify our previous arithmetic operations example
slightly so that the slots all return the results of computing the
product, quotient, sum, or difference. Then the signal itself can
return a value based on these results to be printed:</fo:block><fo:block id="id542155" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id542174" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
float product(float x, float y) { return x*y; }
float quotient(float x, float y) { return x/y; }
float sum(float x, float y) { return x+y; }
float difference(float x, float y) { return x-y; }

<fo:basic-link internal-destination="signal">boost::signal</fo:basic-link>&lt;float (float x, float y)&gt; sig;

sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;product);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;quotient);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;sum);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;difference);

std::cout &lt;&lt; sig(5, 3) &lt;&lt; std::endl;
</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id542227" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
float product(float x, float y) { return x*y; }
float quotient(float x, float y) { return x/y; }
float sum(float x, float y) { return x+y; }
float difference(float x, float y) { return x-y; }

<fo:basic-link internal-destination="signalN">boost::signal2</fo:basic-link>&lt;float, float, float&gt; sig;

sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;product);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;quotient);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;sum);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;difference);

std::cout &lt;&lt; sig(5, 3) &lt;&lt; std::endl;
</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This example program will output <fo:inline font-family="monospace">2</fo:inline>. This is because the
default behavior of a signal that has a return type
(<fo:inline font-family="monospace">float</fo:inline>, the first template argument given to the
<fo:inline font-family="monospace"><fo:basic-link internal-destination="signal">boost::signal</fo:basic-link></fo:inline> class template) is to call all slots and
then return the result returned by the last slot called. This
behavior is admittedly silly for this example, because slots have
no side effects and the result is the last slot connect.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A more interesting signal result would be the maximum of the
values returned by any slot. To do this, we create a custom
combiner that looks like this:</fo:block><fo:block id="id542317" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
template&lt;typename T&gt;
struct maximum
{
  typedef T result_type;

  template&lt;typename InputIterator&gt;
  T operator()(InputIterator first, InputIterator last) const
  {
    // If there are no slots to call, just return the
    // default-constructed value
    if (first == last)
      return T();

    T max_value = *first++;
    while (first != last) {
      if (max_value &lt; *first)
        max_value = *first;
      ++first;
    }
  
    return max_value;
  }
};
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">maximum</fo:inline> class template acts as a function
object. Its result type is given by its template parameter, and
this is the type it expects to be computing the maximum based on
(e.g., <fo:inline font-family="monospace">maximum&lt;float&gt;</fo:inline> would find the maximum
<fo:inline font-family="monospace">float</fo:inline> in a sequence of <fo:inline font-family="monospace">float</fo:inline>s). When a
<fo:inline font-family="monospace">maximum</fo:inline> object is invoked, it is given an input
iterator sequence <fo:inline font-family="monospace">[first, last)</fo:inline> that includes the
results of calling all of the slots. <fo:inline font-family="monospace">maximum</fo:inline> uses this
input iterator sequence to calculate the maximum element, and
returns that maximum value.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">We actually use this new function object type by installing it
as a combiner for our signal. The combiner template argument
follows the signal's calling signature:</fo:block><fo:block id="id542397" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id542415" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="signal">boost::signal</fo:basic-link>&lt;float (float x, float y), 
              maximum&lt;float&gt; &gt; sig;
</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id542430" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="signalN">boost::signal2</fo:basic-link>&lt;float, float, float, 
               maximum&lt;float&gt; &gt; sig;
</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Now we can connect slots that perform arithmetic functions and
use the signal:</fo:block><fo:block id="id542447" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;quotient);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;product);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;sum);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;difference);

std::cout &lt;&lt; sig(5, 3) &lt;&lt; std::endl;
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The output of this program will be <fo:inline font-family="monospace">15</fo:inline>, because
regardless of the order in which the slots are connected, the product
of 5 and 3 will be larger than the quotient, sum, or
difference.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In other cases we might want to return all of the values
computed by the slots together, in one large data structure. This
is easily done with a different combiner:</fo:block><fo:block id="id542504" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
template&lt;typename Container&gt;
struct aggregate_values
{
  typedef Container result_type;

  template&lt;typename InputIterator&gt;
  Container operator()(InputIterator first, InputIterator last) const
  {
    return Container(first, last);
  }
};
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Again, we can create a signal with this new combiner: 
</fo:block><fo:block id="id542517" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id542536" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="signal">boost::signal</fo:basic-link>&lt;float (float, float), 
    aggregate_values&lt;std::vector&lt;float&gt; &gt; &gt; sig;

sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;quotient);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;product);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;sum);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;difference);

std::vector&lt;float&gt; results = sig(5, 3);
std::copy(results.begin(), results.end(), 
    std::ostream_iterator&lt;float&gt;(cout, " "));
</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id542589" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="signalN">boost::signal2</fo:basic-link>&lt;float, float, float,
    aggregate_values&lt;std::vector&lt;float&gt; &gt; &gt; sig;

sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;quotient);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;product);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;sum);
sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(&amp;difference);

std::vector&lt;float&gt; results = sig(5, 3);
std::copy(results.begin(), results.end(), 
    std::ostream_iterator&lt;float&gt;(cout, " "));
</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The output of this program will contain 15, 8, 1.6667, and 2. It
is interesting here that
the first template argument for the <fo:inline font-family="monospace">signal</fo:inline> class,
<fo:inline font-family="monospace">float</fo:inline>, is not actually the return type of the signal.
Instead, it is the return type used by the connected slots and will
also be the <fo:inline font-family="monospace">value_type</fo:inline> of the input iterators passed
to the combiner. The combiner itself is a function object and its
<fo:inline font-family="monospace">result_type</fo:inline> member type becomes the return type of the
signal.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The input iterators passed to the combiner transform dereference
operations into slot calls. Combiners therefore have the option to
invoke only some slots until some particular criterion is met. For
instance, in a distributed computing system, the combiner may ask
each remote system whether it will handle the request. Only one
remote system needs to handle a particular request, so after a
remote system accepts the work we do not want to ask any other
remote systems to perform the same task. Such a combiner need only
check the value returned when dereferencing the iterator, and
return when the value is acceptable. The following combiner returns
the first non-NULL pointer to a <fo:inline font-family="monospace">FulfilledRequest</fo:inline> data
structure, without asking any later slots to fulfill the
request:</fo:block><fo:block id="id542697" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct DistributeRequest {
  typedef FulfilledRequest* result_type;

  template&lt;typename InputIterator&gt;
  result_type operator()(InputIterator first, InputIterator last) const
  {
    while (first != last) {
      if (result_type fulfilled = *first)
        return fulfilled;
      ++first;
    }
    return 0;
  }
};
</fo:block></fo:block></fo:block><fo:block id="id542714"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Connection Management</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id542718"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Disconnecting Slots (Beginner)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Slots aren't expected to exist indefinately after they are
connected. Often slots are only used to receive a few events and
are then disconnected, and the programmer needs control to decide
when a slot should no longer be connected.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The entry point for managing connections explicitly is the
<fo:inline font-family="monospace"><fo:basic-link internal-destination="connection">boost::signals::connection</fo:basic-link></fo:inline> class. The
<fo:inline font-family="monospace"><fo:basic-link internal-destination="connection">connection</fo:basic-link></fo:inline> class uniquely represents the connection
between a particular signal and a particular slot. The
<fo:inline font-family="monospace"><fo:basic-link internal-destination="id466837-bb">connected</fo:basic-link>()</fo:inline> method checks if the signal and slot are
still connected, and the <fo:inline font-family="monospace"><fo:basic-link internal-destination="id300085-bb">disconnect()</fo:basic-link></fo:inline> method
disconnects the signal and slot if they are connected before it is
called. Each call to the signal's <fo:inline font-family="monospace">connect()</fo:inline> method
returns a connection object, which can be used to determine if the
connection still exists or to disconnect the signal and slot.</fo:block><fo:block id="id542799" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
boost::signals::connection c = sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(HelloWorld());
if (c.connected()) {
<fo:inline font-style="italic">// c is still connected to the signal</fo:inline>
  sig(); <fo:inline font-style="italic">// Prints "Hello, World!"</fo:inline>
}

c.disconnect(); <fo:inline font-style="italic">// Disconnect the HelloWorld object</fo:inline>
assert(!c.connected()); <fo:inline font-style="italic">c isn't connected any more</fo:inline>

sig(); <fo:inline font-style="italic">// Does nothing: there are no connected slots</fo:inline></fo:block></fo:block><fo:block id="id542836"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Scoped connections (Intermediate)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">boost::signals::scoped_connection</fo:inline> class
references a signal/slot connection that will be disconnected when
the <fo:inline font-family="monospace">scoped_connection</fo:inline> class goes out of scope. This
ability is useful when a connection need only be temporary,
e.g.,</fo:block><fo:block id="id542860" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
{
  boost::signals::scoped_connection c = sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(ShortLived());
  sig(); <fo:inline font-style="italic">// will call ShortLived function object</fo:inline>
}
sig(); <fo:inline font-style="italic">// ShortLived function object no longer connected to sig</fo:inline></fo:block></fo:block><fo:block id="id542882"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Disconnecting equivalent slots (Intermediate)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">One can disconnect slots that are equivalent to a given function
object using a form of the
<fo:inline font-family="monospace"><fo:basic-link internal-destination="id387664-bb">disconnect</fo:basic-link></fo:inline> method, so long as
the type of the function object has an accessible <fo:inline font-family="monospace">==</fo:inline>
operator. For instance:

</fo:block><fo:block id="id542912" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id542930" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
void foo();
void bar();

signal&lt;void()&gt; sig;

sig.connect(&amp;foo);
sig.connect(&amp;bar);

// disconnects foo, but not bar
sig.disconnect(&amp;foo);
</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id542939" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
void foo();
void bar();

signal0&lt;void&gt; sig;

sig.connect(&amp;foo);
sig.connect(&amp;bar);

// disconnects foo, but not bar
sig.disconnect(&amp;foo);
</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="id542947"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Automatic connection management (Intermediate)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Boost.Signals can automatically track the lifetime of objects
involved in signal/slot connections, including automatic
disconnection of slots when objects involved in the slot call are
destroyed. For instance, consider a simple news delivery service,
where clients connect to a news provider that then sends news to
all connected clients as information arrives. The news delivery
service may be constructed like this: </fo:block><fo:block id="id542962" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id542980" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
class NewsItem { /* ... */ };

boost::signal&lt;void (const NewsItem&amp;)&gt; deliverNews;
</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id542988" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
class NewsItem { /* ... */ };

boost::signal1&lt;void, const NewsItem&amp;&gt; deliverNews;
</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Clients that wish to receive news updates need only connect a
function object that can receive news items to the
<fo:inline font-family="monospace">deliverNews</fo:inline> signal. For instance, we may have a
special message area in our application specifically for news,
e.g.,:</fo:block><fo:block id="id543008" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct NewsMessageArea : public MessageArea
{
public:
  // ...

  void displayNews(const NewsItem&amp; news) const
  {
    messageText = news.text();
    update();
  }
};

// ...
NewsMessageArea newsMessageArea = new NewsMessageArea(/* ... */);
// ...
deliverNews.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(boost::bind(&amp;NewsMessageArea::displayNews, 
                                newsMessageArea, _1));
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">However, what if the user closes the news message area,
destroying the <fo:inline font-family="monospace">newsMessageArea</fo:inline> object that
<fo:inline font-family="monospace">deliverNews</fo:inline> knows about? Most likely, a segmentation
fault will occur. However, with Boost.Signals one need only make
<fo:inline font-family="monospace">NewsMessageArea</fo:inline><fo:inline font-style="italic">trackable</fo:inline>, and the slot
involving <fo:inline font-family="monospace">newsMessageArea</fo:inline> will be disconnected when
<fo:inline font-family="monospace">newsMessageArea</fo:inline> is destroyed. The
<fo:inline font-family="monospace">NewsMessageArea</fo:inline> class is made trackable by deriving
publicly from the <fo:inline font-family="monospace">boost::signals::trackable</fo:inline> class,
e.g.:</fo:block><fo:block id="id543094" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct NewsMessageArea : public MessageArea, public boost::signals::trackable
{
  // ...
};
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">At this time there is a significant limitation to the use of
<fo:inline font-family="monospace">trackable</fo:inline> objects in making slot connections: function
objects built using Boost.Bind are understood, such that pointers
or references to <fo:inline font-family="monospace">trackable</fo:inline> objects passed to
<fo:inline font-family="monospace">boost::bind</fo:inline> will be found and tracked.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Warning</fo:inline>: User-defined function objects and function
objects from other libraries (e.g., Boost.Function or Boost.Lambda)
do not implement the required interfaces for <fo:inline font-family="monospace">trackable</fo:inline>
object detection, and <fo:inline font-style="italic">will silently ignore any bound trackable
objects</fo:inline>. Future versions of the Boost libraries will address
this limitation.</fo:block></fo:block><fo:block id="id543150"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">When can disconnections occur? (Intermediate)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Signal/slot disconnections occur when any of these conditions
occur:</fo:block><fo:list-block id="id543158" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id543160" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The connection is explicitly disconnected via the connection's
<fo:inline font-family="monospace">disconnect</fo:inline> method directly, or indirectly via the
signal's <fo:inline font-family="monospace">disconnect</fo:inline> method or
<fo:inline font-family="monospace">scoped_connection</fo:inline>'s destructor.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id543186" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A <fo:inline font-family="monospace">trackable</fo:inline> object bound to the slot is
destroyed.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id543196" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The signal is destroyed.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">These events can occur at any time without disrupting a signal's
calling sequence. If a signal/slot connection is disconnected at
any time during a signal's calling sequence, the calling sequence
will still continue but will not invoke the disconnected slot.
Additionally, a signal may be destroyed while it is in a calling
sequence, and which case it will complete its slot call sequence
but may not be accessed directly.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Signals may be invoked recursively (e.g., a signal A calls a
slot B that invokes signal A...). The disconnection behavior does
not change in the recursive case, except that the slot calling
sequence includes slot calls for all nested invocations of the
signal.</fo:block></fo:block><fo:block id="id543217"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Passing slots (Intermediate)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Slots in the Boost.Signals library are created from arbitrary
function objects, and therefore have no fixed type. However, it is
commonplace to require that slots be passed through interfaces that
cannot be templates. Slots can be passed via the
<fo:inline font-family="monospace">slot_type</fo:inline> for each particular signal type and any
function object compatible with the signature of the signal can be
passed to a <fo:inline font-family="monospace">slot_type</fo:inline> parameter. For instance:</fo:block><fo:block id="id543244" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Preferred syntax</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Portable syntax</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id543263" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
class Button 
{
  typedef boost::signal&lt;void (int x, int y)&gt; OnClick;

public:
  void doOnClick(const OnClick::slot_type&amp; slot);

private:
  OnClick onClick;
};

void Button::doOnClick(
      const OnClick::slot_type&amp; slot
    )
{
  onClick.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(slot);
}

void printCoordinates(long x, long y)
{
  std::cout &lt;&lt; "(" &lt;&lt; x &lt;&lt; ", " &lt;&lt; y &lt;&lt; ")\n";
}

void f(Button&amp; button)
{
  button.doOnClick(&amp;printCoordinates);
}
</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id543287" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
class Button 
{
  typedef <fo:basic-link internal-destination="signalN">boost::signal2</fo:basic-link>&lt;void,int,int&gt; OnClick;

public:
  void doOnClick(const OnClick::slot_type&amp; slot);

private:
  OnClick onClick;
};

void Button::doOnClick(
      const OnClick::slot_type&amp; slot
    )
{
  onClick.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(slot);
}

void printCoordinates(long x, long y)
{
  std::cout &lt;&lt; "(" &lt;&lt; x &lt;&lt; ", " &lt;&lt; y &lt;&lt; ")\n";
}

void f(Button&amp; button)
{
  button.doOnClick(&amp;printCoordinates);
}
</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">doOnClick</fo:inline> method is now functionally equivalent
to the <fo:inline font-family="monospace">connect</fo:inline> method of the <fo:inline font-family="monospace">onClick</fo:inline>
signal, but the details of the <fo:inline font-family="monospace">doOnClick</fo:inline> method can be
hidden in an implementation detail file.</fo:block></fo:block></fo:block><fo:block id="id543351"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Linking against the Signals library</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Part of the Boost.Signals library is compiled into a binary
  library that must be linked into your application to use Signals. To
  build this library, execute the command <fo:inline font-weight="bold">bjam</fo:inline> in
  either the top-level Boost directory or in
  <fo:inline font-family="monospace">libs/signals/build</fo:inline>. On Unix, the directory
  <fo:inline font-family="monospace">libs/signals/build/bin-stage</fo:inline> will then contain
  libraries named, e.g., <fo:inline font-family="monospace">libboost_signals.a</fo:inline> that can be
  linked in your program with <fo:inline font-family="monospace">-lboost_signals</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">On Windows, with Microsoft Visual C++ or Borland C++, the
  linking process is nearly automatic. As with the
  <fo:basic-link external-destination="../../libs/regex/index.html">Regex</fo:basic-link> library, the libraries in
  <fo:inline font-family="monospace">libs\signals\build\bin-stage</fo:inline> will have mangled names
  and will be automatically be including in the link process. To link
  against the Signals library binary dynamically (e.g., using the
  Signals DLL), define <fo:inline font-family="monospace">BOOST_SIGNALS_DYN_LINK</fo:inline> when
  building your application; to link statically, define
  <fo:inline font-family="monospace">BOOST_SIGNALS_STATIC_LINK</fo:inline>. </fo:block></fo:block></fo:block><fo:block id="signals.reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Reference</fo:marker><fo:block font-size="17.28pt">Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="header.boost.signal.hpp"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/signal.hpp">boost/signal.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id543458" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> R, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Combiner = <fo:basic-link internal-destination="last_value">last_value</fo:basic-link>&lt;R&gt;, <fo:inline font-weight="bold">typename</fo:inline> Group = <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> GroupCompare = std::less&lt;Group&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> SlotFunction = <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;R, T1, T2, ..., TN&gt; &gt; 
  &#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="signalN">signalN</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-weight="bold">typename</fo:inline> Combiner = <fo:basic-link internal-destination="last_value">last_value</fo:basic-link>&lt;R&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Group = <fo:inline font-weight="bold">int</fo:inline>, <fo:inline font-weight="bold">typename</fo:inline> GroupCompare = std::less&lt;Group&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> SlotFunction = <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;Signature&gt; &gt; 
  &#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="signal">signal</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> signals {

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:wrapper id="id283726"/>connect_position { at_front, at_back };
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="signalN"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template signalN</fo:block></fo:block><fo:block space-after="1em">Class template signalN <fo:inline font-family="serif">--</fo:inline> Set of safe multicast callback types.</fo:block><fo:block>boost::signalN</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id543690"><fo:block/><fo:block id="id543692" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> R, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Combiner = <fo:basic-link internal-destination="last_value">last_value</fo:basic-link>&lt;R&gt;, <fo:inline font-weight="bold">typename</fo:inline> Group = <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> GroupCompare = std::less&lt;Group&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> SlotFunction = <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;R, T1, T2, ..., TN&gt; &gt; 
<fo:inline font-weight="bold">class</fo:inline> signalN : <fo:inline font-weight="bold">public</fo:inline> <fo:basic-link internal-destination="trackable">signals::trackable</fo:basic-link>,
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">private</fo:inline> noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-weight="bold">typename</fo:inline> Combiner::result_type result_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> Combiner&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; combiner_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> Group&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; group_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> GroupCompare&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; group_compare_type;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> SlotFunction&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; slot_function_type;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="slot">slot</fo:basic-link>&lt;SlotFunction&gt;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; slot_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">unspecified</fo:inline>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; slot_result_type;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">unspecified</fo:inline>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; slot_call_iterator;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T1&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; argument_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// If N == 1</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T1&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; first_argument_type;&#xA0;  <fo:inline font-style="italic">// If N == 2</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T2&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; second_argument_type;  <fo:inline font-style="italic">// If N == 2</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T1&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; arg1_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T2&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; arg2_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;.
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;.
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;.
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> TN&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; argN_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// static constants</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">static</fo:inline> <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">int</fo:inline> arity = N;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="signalNconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id261347-bb">signalN</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> combiner_type&amp; = combiner_type(), 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> group_compare_type&amp; = group_compare_type());
&#xA0;&#xA0;<fo:basic-link internal-destination="id219050-bb">~signalN</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id386837-bb">connection management</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="connection">signals::connection</fo:basic-link> 
&#xA0;&#xA0;<fo:basic-link internal-destination="id233017-bb">connect</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> slot_type&amp;, signals::connect_position = signals::at_back);
&#xA0;&#xA0;<fo:basic-link internal-destination="connection">signals::connection</fo:basic-link> 
&#xA0;&#xA0;<fo:basic-link internal-destination="id225812-bb">connect</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> group_type&amp;, <fo:inline font-weight="bold">const</fo:inline> slot_type&amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;signals::connect_position = signals::at_back);
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id283648-bb">disconnect</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> group_type&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Slot&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id325500-bb">disconnect</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Slot&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id411689-bb">disconnect_all_slots</fo:basic-link>();
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id324310-bb">empty</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;std::size_t <fo:basic-link internal-destination="id374214-bb">num_slots</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id426739-bb">invocation</fo:basic-link></fo:inline>
&#xA0;&#xA0;result_type <fo:basic-link internal-destination="id378613-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(arg1_type, arg2_type, ..., argN_type);
&#xA0;&#xA0;result_type <fo:basic-link internal-destination="id444795-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(arg1_type, arg2_type, ..., argN_type) <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id270382-bb">combiner access</fo:basic-link></fo:inline>
&#xA0;&#xA0;combiner_type&amp; <fo:basic-link internal-destination="id337814-bb">combiner</fo:basic-link>();
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> combiner_type&amp; <fo:basic-link internal-destination="id308951-bb">combiner</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id544363"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The class template <fo:basic-link internal-destination="signalN">signalN</fo:basic-link> covers
         several related classes signal0, signal1, signal2, etc.,
         where the number suffix describes the number of function
         parameters the signal and its connected slots will
         take. Instead of enumerating all classes, a single pattern
         <fo:basic-link internal-destination="signalN">signalN</fo:basic-link> will be described, where N
         represents the number of function parameters.</fo:block><fo:block id="id544386"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">signalN construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="signalNconstruct-copy-destruct"/><fo:inline font-family="monospace">signalN</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id544401" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id544407" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id544410" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id261347-bb"/>signalN(<fo:inline font-weight="bold">const</fo:inline> combiner_type&amp; combiner = combiner_type(), 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> group_compare_type&amp; compare = group_compare_type());</fo:block></fo:block><fo:list-block id="id544440" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id544444" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Initializes the signal to contain no slots, copies the given combiner into internal storage, and stores the given group comparison function object to compare groups.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544454" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id324310-bb">empty</fo:basic-link>()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544474" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id544476" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id219050-bb"/>~signalN();</fo:block></fo:block><fo:list-block id="id544489" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id544492" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Disconnects all slots connected to <fo:inline font-family="monospace">*this</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id544507"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">signalN connection management</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id386837-bb"/><fo:inline font-family="monospace">signalN</fo:inline> connection management</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id544522" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id544528" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id503915-bb"><fo:block id="id544535" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="connection">signals::connection</fo:basic-link> 
<fo:wrapper id="id233017-bb"/>connect(<fo:inline font-weight="bold">const</fo:inline> slot_type&amp; slot, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;signals::connect_position at = signals::at_back);
<fo:basic-link internal-destination="connection">signals::connection</fo:basic-link> 
<fo:wrapper id="id225812-bb"/>connect(<fo:inline font-weight="bold">const</fo:inline> group_type&amp; group, <fo:inline font-weight="bold">const</fo:inline> slot_type&amp; slot, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;signals::connect_position at = signals::at_back);</fo:block></fo:block><fo:list-block id="id544600" provisional-distance-between-starts="10em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id544604" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Connects the signal this to the incoming
          slot. If the slot is inactive, i.e., any of the trackable
          objects bound by the slot call have been destroyed, then the
          call to connect is a no-op. If the second version of
          <fo:inline font-family="monospace">connect</fo:inline> is invoked, the
          slot is associated with the given group. The <fo:inline font-family="monospace">at</fo:inline>
          parameter specifies where the slot should be connected:
          <fo:inline font-family="monospace">at_front</fo:inline> indicates that the slot will be
          connected at the front of the list or group of slots and
          <fo:inline font-family="monospace">at_back</fo:inline> indicates that the slot will be
          connected at the back of the list or group of
          slots.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544648" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="connection">signals::connection</fo:basic-link></fo:inline>
          object that references the newly-created connection between
          the signal and the slot; if the slot is inactive, returns a
          disconnected connection.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544671" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This routine meets the strong exception guarantee,
          where any exception thrown will cause the slot to not be
          connected to the signal.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544681" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Complexity</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Constant time when connecting a slot
          without a group name or logarithmic in the number of groups
          when connecting to a particular
          group.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544691" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>It is unspecified whether connecting a slot while the
          signal is calling will result in the slot being called
          immediately.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544701" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id387664-bb"><fo:block id="id544708" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id283648-bb"/>disconnect(<fo:inline font-weight="bold">const</fo:inline> group_type&amp; group);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Slot&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id325500-bb"/>disconnect(<fo:inline font-weight="bold">const</fo:inline> Slot&amp; slot);</fo:block></fo:block><fo:list-block id="id544770" provisional-distance-between-starts="10em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id544773" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If the parameter is (convertible to) a
          group name, any slots in the given group are
          disconnected. Otherwise, any slots equal to the given slot
          are disconnected.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544784" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw unless a user destructor or
          equality operator <fo:inline font-family="monospace">==</fo:inline> throws. If either throws,
          not all slots may be disconnected.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544800" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Complexity</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If a group is given, O(lg g) + k where
          g is the number of groups in the signal and k is the
          number of slots in the group. Otherwise, linear in the
          number of slots connected to the
          signal.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544812" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id544814" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id411689-bb"/>disconnect_all_slots();</fo:block></fo:block><fo:list-block id="id544835" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id544839" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Disconnects all slots connected to the signal.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544847" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id324310-bb">empty</fo:basic-link>()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544868" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If disconnecting a slot causes an exception to be
          thrown, not all slots may be disconnected.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544877" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Complexity</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Linear in the number of slots known to the
          signal.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544885" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>May be called at any time within the lifetime of the
          signal, including during calls to the signal's slots.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544895" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id544897" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id324310-bb"/>empty() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id544924" provisional-distance-between-starts="10em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id544928" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">true</fo:inline> if no slots
          are connected to the signal, and
          <fo:inline font-family="monospace">false</fo:inline> otherwise.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544949" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544956" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Complexity</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Linear in the number of slots known to the
          signal.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544965" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Slots can disconnect at any point in time,
          including while those same slots are being invoked. It is
          therefore possible that the implementation must search
          through a list of disconnected slots to determine if any
          slots are still connected.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id544978" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id544980" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::size_t <fo:wrapper id="id374214-bb"/>num_slots() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id545004" provisional-distance-between-starts="10em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id545007" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The number of slots connected to the signal</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id545016" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id545024" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Complexity</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Linear in the number of slots known to the
          signal.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id545032" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Slots can disconnect at any point in time,
          including while those same slots are being invoked. It is
          therefore possible that the implementation must search
          through a list of disconnected slots to determine how many
          slots are still connected.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id545045"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">signalN invocation</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id426739-bb"/><fo:inline font-family="monospace">signalN</fo:inline> invocation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id545059" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id545065" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id403960-bb"><fo:block id="id545072" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">result_type <fo:wrapper id="id378613-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(arg1_type a1, arg2_type a2, ... , argN_type aN);
result_type <fo:wrapper id="id444795-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(arg1_type a1, arg2_type a2, ... , argN_type aN) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id545118" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id545122" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Invokes the combiner with a
          <fo:inline font-family="monospace">slot_call_iterator</fo:inline> range
          [first, last) corresponding to the sequence of calls to the
          slots connected to signal
          <fo:inline font-family="monospace">*this</fo:inline>. Dereferencing an
          iterator in this range causes a slot call with the given set
          of parameters <fo:inline font-family="monospace">(a1, a2, ...,
          aN)</fo:inline>, the result of which is returned from
          the iterator dereference operation.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id545156" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The result returned by the combiner.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id545164" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If an exception is thrown by a slot call, or if the
          combiner does not dereference any slot past some given slot,
          all slots after that slot in the internal list of connected
          slots will not be invoked.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id545175" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Only the slots associated with iterators that are
          actually dereferenced will be invoked. Multiple dereferences
          of the same iterator will not result in multiple slot
          invocations, because the return value of the slot will be
          cached.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">const</fo:inline> version of
          the function call operator will invoke the combiner as
          <fo:inline font-family="monospace">const</fo:inline>, whereas the
          non-<fo:inline font-family="monospace">const</fo:inline> version will
          invoke the combiner as
          non-<fo:inline font-family="monospace">const</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calling the function call operator may invoke undefined
          behavior if no slots are connected to the signal, depending
          on the combiner used. The default combiner is well-defined
          for zero slots when the return type is void but is undefined
          when the return type is any other type (because there is no
          way to synthesize a return value).</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id545228"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">signalN combiner access</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id270382-bb"/><fo:inline font-family="monospace">signalN</fo:inline> combiner access</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id545242" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id545248" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id373067-bb"><fo:block id="id545255" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">combiner_type&amp; <fo:wrapper id="id337814-bb"/>combiner();
<fo:inline font-weight="bold">const</fo:inline> combiner_type&amp; <fo:wrapper id="id308951-bb"/>combiner() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id545295" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id545298" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A reference to the stored combiner.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id545307" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="signal"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template signal</fo:block></fo:block><fo:block space-after="1em">Class template signal <fo:inline font-family="serif">--</fo:inline> Safe multicast callback.</fo:block><fo:block>boost::signal</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id545334"><fo:block/><fo:block id="id545335" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Signature, <fo:inline font-style="italic">  // Function type R (T1, T2, ..., TN)</fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Combiner = <fo:basic-link internal-destination="last_value">last_value</fo:basic-link>&lt;R&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Group = <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> GroupCompare = std::less&lt;Group&gt;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> SlotFunction = <fo:basic-link internal-destination="functionN">functionN</fo:basic-link>&lt;Signature&gt; &gt; 
<fo:inline font-weight="bold">class</fo:inline> signal : <fo:inline font-weight="bold">public</fo:inline> <fo:basic-link internal-destination="signalN">signalN</fo:basic-link>&lt;R, T1, T2, ..., TN, Combiner, Group, GroupCompare, SlotFunction&gt;
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="signalconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id299131-bb">signal</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> combiner_type&amp; = combiner_type(), 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> group_compare_type&amp; = group_compare_type());
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id545478"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class template <fo:basic-link internal-destination="signal">signal</fo:basic-link> is a thin
        wrapper around the numbered class templates <fo:basic-link internal-destination="signalN">signal0</fo:basic-link>, <fo:basic-link internal-destination="signalN">signal1</fo:basic-link>, etc. It accepts a function
        type with N arguments instead of N separate arguments, and
        derives from the appropriate <fo:basic-link internal-destination="signalN">signalN</fo:basic-link>
        instantiation.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">All functionality of this class template is in its base
        class <fo:basic-link internal-destination="signalN">signalN</fo:basic-link>.</fo:block><fo:block id="id545529"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">signal construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="signalconstruct-copy-destruct"/><fo:inline font-family="monospace">signal</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id545544" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id545550" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id545552" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id299131-bb"/>signal(<fo:inline font-weight="bold">const</fo:inline> combiner_type&amp; combiner = combiner_type(), 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> group_compare_type&amp; compare = group_compare_type());</fo:block></fo:block><fo:list-block id="id545583" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id545586" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Initializes the base class with the given combiner
        and comparison objects.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id341848"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/signals/slot.hpp">boost/signals/slot.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id545611" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SlotFunction&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="slot">slot</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="slot"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template slot</fo:block></fo:block><fo:block space-after="1em">Class template slot <fo:inline font-family="serif">--</fo:inline> Pass slots as function arguments.</fo:block><fo:block>boost::slot</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id545667"><fo:block/><fo:block id="id545668" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SlotFunction&gt; 
<fo:inline font-weight="bold">class</fo:inline> slot {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="slotconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Slot&gt; <fo:basic-link internal-destination="id425481-bb">slot</fo:basic-link>(Slot);
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id545736"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id545740"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">slot construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="slotconstruct-copy-destruct"/><fo:inline font-family="monospace">slot</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id545754" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id545760" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id545763" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Slot&gt; <fo:wrapper id="id425481-bb"/>slot(Slot target);</fo:block></fo:block><fo:list-block id="id545790" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id545794" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Invokes
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="visit_each">visit_each</fo:basic-link></fo:inline>
        (unqualified) to discover pointers and references to
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="trackable">signals::trackable</fo:basic-link></fo:inline>
        objects in <fo:inline font-family="monospace">target</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Initializes <fo:inline font-family="monospace">this</fo:inline> to
          contain the incoming slot
          <fo:inline font-family="monospace">target</fo:inline>, which may be any
          function object with which a
          <fo:inline font-family="monospace">SlotFunction</fo:inline> can be
          constructed.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id225819"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/signals/trackable.hpp">boost/signals/trackable.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id545874" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> signals {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="trackable">trackable</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="trackable"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class trackable</fo:block></fo:block><fo:block space-after="1em">Class trackable <fo:inline font-family="serif">--</fo:inline> Enables safe use of multicast callbacks.</fo:block><fo:block>boost::signals::trackable</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id545926"><fo:block/><fo:block id="id545927" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> trackable {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="trackableconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id388314-bb">trackable</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id431043-bb">trackable</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="trackable">trackable</fo:basic-link>&amp;);
&#xA0;&#xA0;trackable&amp; <fo:basic-link internal-destination="id338348-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="trackable">trackable</fo:basic-link>&amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id364828-bb">~trackable</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id546031"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">trackable</fo:inline> class provides automatic
          disconnection of signals and slots when objects bound in
          slots (via pointer or reference) are destroyed. The
          <fo:inline font-family="monospace">trackable</fo:inline> class may only be used as a public
          base class for some other class; when used as such, that
          class may be bound to function objects used as part of
          slots. The manner in which a <fo:inline font-family="monospace">trackable</fo:inline> object
          tracks the set of signal-slot connections it is a part of is
          unspecified.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The actual use of <fo:inline font-family="monospace">trackable</fo:inline> is contingent
          on the presence of appropriate
          <fo:basic-link internal-destination="visit_each">visit_each</fo:basic-link> overloads for any
          type that may contain pointers or references to trackable
          objects.</fo:block><fo:block id="id546086"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">trackable construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="trackableconstruct-copy-destruct"/><fo:inline font-family="monospace">trackable</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id546102" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id546108" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id546110" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id388314-bb"/>trackable();</fo:block></fo:block><fo:list-block id="id546123" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id546127" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Sets the list of connected slots to empty.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546135" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546143" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id546146" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id431043-bb"/>trackable(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="trackable">trackable</fo:basic-link>&amp; other);</fo:block></fo:block><fo:list-block id="id546174" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id546177" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Sets the list of connected slots to empty.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546186" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546194" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Signal-slot connections can only be created via calls to an explicit connect method, and therefore cannot be created here when trackable objects are copied.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546204" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id546206" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">trackable&amp; <fo:wrapper id="id338348-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="trackable">trackable</fo:basic-link>&amp; other);</fo:block></fo:block><fo:list-block id="id546241" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id546245" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Sets the list of connected slots to empty.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546253" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">*this</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546264" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546272" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Signal-slot connections can only be created via calls to an explicit connect method, and therefore cannot be created here when trackable objects are copied.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546283" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id546285" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id364828-bb"/>~trackable();</fo:block></fo:block><fo:list-block id="id546298" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id546302" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Disconnects all signal/slot connections that
          contain a pointer or reference to this trackable object that
          can be found by
          <fo:basic-link internal-destination="visit_each">visit_each</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id490968"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/signals/connection.hpp">boost/signals/connection.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id546335" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> signals {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="connection">connection</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id344320">swap</fo:basic-link>(<fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp;, <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="scoped_connection">scoped_connection</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="connection"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class connection</fo:block></fo:block><fo:block space-after="1em">Class connection <fo:inline font-family="serif">--</fo:inline> Query/disconnect a signal-slot connection.</fo:block><fo:block>boost::signals::connection</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id546437"><fo:block/><fo:block id="id546438" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> connection {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="connectionconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id262567-bb">connection</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id346486-bb">connection</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp;);
&#xA0;&#xA0;connection&amp; <fo:basic-link internal-destination="id385847-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id281275-bb">connection management</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id300085-bb">disconnect</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id466837-bb">connected</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id243349-bb">modifiers</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id281970-bb">swap</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id404035-bb">comparisons</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id507421-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id426800-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp;) <fo:inline font-weight="bold">const</fo:inline>;
};

<fo:inline font-style="italic">// <fo:basic-link internal-destination="id410784-bb">specialized algorithms</fo:basic-link></fo:inline>
<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id344320">swap</fo:basic-link>(<fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp;, <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp;);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id546773"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="connection">connection</fo:basic-link> class represents
          a connection between a Signal and a Slot. It is a
          lightweight object that has the ability to query whether the
          signal and slot are currently connected, and to disconnect
          the signal and slot. It is always safe to query or
          disconnect a connection.</fo:block><fo:block id="id546793"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">connection construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="connectionconstruct-copy-destruct"/><fo:inline font-family="monospace">connection</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id546808" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id546814" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id546817" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id262567-bb"/>connection();</fo:block></fo:block><fo:list-block id="id546830" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id546834" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Sets the currently represented connection to the
          NULL connection.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546843" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">!this-&gt;<fo:basic-link internal-destination="id466837-bb">connected</fo:basic-link>()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546864" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546871" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id546874" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id346486-bb"/>connection(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp; other);</fo:block></fo:block><fo:list-block id="id546902" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id546905" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">this</fo:inline> references
          the connection referenced by
          <fo:inline font-family="monospace">other</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546925" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546933" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id546935" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">connection&amp; <fo:wrapper id="id385847-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp; other);</fo:block></fo:block><fo:list-block id="id546970" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id546973" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">this</fo:inline> references
          the connection referenced by
          <fo:inline font-family="monospace">other</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id546993" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id547001"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">connection connection management</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id281275-bb"/><fo:inline font-family="monospace">connection</fo:inline> connection management</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id547016" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id547022" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id547024" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id300085-bb"/>disconnect() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id547052" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id547055" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If
             <fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id466837-bb">connected</fo:basic-link>()</fo:inline>,
             disconnects the signal and slot referenced by this;
             otherwise, this operation is a no-op.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id547080" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">!this-&gt;<fo:basic-link internal-destination="id466837-bb">connected</fo:basic-link>()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id547100" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id547103" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id466837-bb"/>connected() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id547129" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id547133" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">true</fo:inline> if this
            references a non-NULL connection that is still active
            (connected), and <fo:inline font-family="monospace">false</fo:inline>
            otherwise.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id547154" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id547162"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">connection modifiers</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id243349-bb"/><fo:inline font-family="monospace">connection</fo:inline> modifiers</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id547177" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id547183" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id547186" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id281970-bb"/>swap(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp; other);</fo:block></fo:block><fo:list-block id="id547220" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id547224" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Swaps the connections referenced in
            <fo:inline font-family="monospace">this</fo:inline> and
            <fo:inline font-family="monospace">other</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id547246" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id547254"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">connection comparisons</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id404035-bb"/><fo:inline font-family="monospace">connection</fo:inline> comparisons</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id547268" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id547274" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id547277" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id507421-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp; other) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id547323" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id547327" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">true</fo:inline> if
            <fo:inline font-family="monospace">this</fo:inline> and
            <fo:inline font-family="monospace">other</fo:inline> reference the same
            connection or both reference the NULL connection, and
            <fo:inline font-family="monospace">false</fo:inline>
            otherwise.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id547361" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id547369" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id547372" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id426800-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp; other) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id547419" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id547422" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">true</fo:inline> if the
            connection referenced by
            <fo:inline font-family="monospace">this</fo:inline> precedes the
            connection referenced by
            <fo:inline font-family="monospace">other</fo:inline> based on some
            unspecified ordering, and
            <fo:inline font-family="monospace">false</fo:inline>
            otherwise.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id547458" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id547466"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">connection specialized algorithms</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id410784-bb"/><fo:inline font-family="monospace">connection</fo:inline> specialized algorithms</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id547480" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id547486" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id547489" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id344320"/>swap(<fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp; x, <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp; y);</fo:block></fo:block><fo:list-block id="id547526" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id547530" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">x.swap(y)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id547541" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="scoped_connection"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class scoped_connection</fo:block></fo:block><fo:block space-after="1em">Class scoped_connection <fo:inline font-family="serif">--</fo:inline> Limits a signal-slot connection lifetime to a particular scope.</fo:block><fo:block>boost::signals::scoped_connection</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id547568"><fo:block/><fo:block id="id547569" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> scoped_connection : <fo:inline font-weight="bold">private</fo:inline> noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="scoped_connectionconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id411563-bb">scoped_connection</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id457026-bb">~scoped_connection</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id445023-bb">connection management</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id381141-bb">disconnect</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id274267-bb">connected</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id547705"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id547709"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">scoped_connection construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="scoped_connectionconstruct-copy-destruct"/><fo:inline font-family="monospace">scoped_connection</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id547726" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id547732" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id547735" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id411563-bb"/>scoped_connection(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="connection">connection</fo:basic-link>&amp; other);</fo:block></fo:block><fo:list-block id="id547762" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id547766" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">this</fo:inline> references
          the connection referenced by
          <fo:inline font-family="monospace">other</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id547786" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id547794" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id547796" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id457026-bb"/>~scoped_connection();</fo:block></fo:block><fo:list-block id="id547810" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id547813" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If
          <fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id274267-bb">connected</fo:basic-link>()</fo:inline>,
          disconnects the signal-slot connection.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id547836"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">scoped_connection connection management</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id445023-bb"/><fo:inline font-family="monospace">scoped_connection</fo:inline> connection management</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id547851" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id547857" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id547859" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id381141-bb"/>disconnect() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id547886" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id547890" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If
             <fo:inline font-family="monospace">this-&gt;<fo:basic-link internal-destination="id274267-bb">connected</fo:basic-link>()</fo:inline>,
             disconnects the signal and slot referenced by this;
             otherwise, this operation is a no-op.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id547914" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">!this-&gt;<fo:basic-link internal-destination="id274267-bb">connected</fo:basic-link>()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id547935" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id547938" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id274267-bb"/>connected() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id547965" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id547968" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">true</fo:inline> if this
            references a non-NULL connection that is still active
            (connected), and <fo:inline font-family="monospace">false</fo:inline>
            otherwise.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id547990" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id234067"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/visit_each.hpp">boost/visit_each.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id548014" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Visitor, <fo:inline font-weight="bold">typename</fo:inline> T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="visit_each">visit_each</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Visitor&amp;, <fo:inline font-weight="bold">const</fo:inline> T&amp;, <fo:inline font-weight="bold">int</fo:inline>);
}</fo:block><fo:block break-before="page"><fo:block id="visit_each"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template visit_each</fo:block></fo:block><fo:block space-after="1em">Function template visit_each <fo:inline font-family="serif">--</fo:inline> Allow limited exploration of class members.</fo:block><fo:block>boost::visit_each</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id548099"><fo:block/><fo:block id="id548100" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Visitor, <fo:inline font-weight="bold">typename</fo:inline> T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> visit_each(<fo:inline font-weight="bold">const</fo:inline> Visitor&amp; visitor, <fo:inline font-weight="bold">const</fo:inline> T&amp; t, <fo:inline font-weight="bold">int</fo:inline> );</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id548152"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="visit_each">visit_each</fo:basic-link> mechanism
        allows a visitor to be applied to every subobject in a given
        object. It is used by the Signals library to discover
        <fo:basic-link internal-destination="trackable">signals::trackable</fo:basic-link> objects within a
        function object, but other uses may surface if used
        universally (e.g., conservative garbage collection). To fit
        within the <fo:basic-link internal-destination="visit_each">visit_each</fo:basic-link> framework,
        a <fo:basic-link internal-destination="visit_each">visit_each</fo:basic-link> overload must be
        supplied for each object type. </fo:block><fo:list-block id="id548198" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id548202" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">visitor(t)</fo:inline>, and for
      every subobject <fo:inline font-family="monospace">x</fo:inline> of
      <fo:inline font-family="monospace">t</fo:inline>: 
        <fo:list-block id="id548228" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id548229" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If <fo:inline font-family="monospace">x</fo:inline> is a reference, <fo:inline font-family="monospace">visit_each(visitor, <fo:basic-link internal-destination="id376299">ref</fo:basic-link>(x), 0)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id548253" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Otherwise, <fo:inline font-family="monospace">visit_each(visitor, x, 0)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id548262" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The third parameter is
      <fo:inline font-family="monospace">long</fo:inline> for the fallback version
      of <fo:basic-link internal-destination="visit_each">visit_each</fo:basic-link> and the argument
      supplied to this third paramter must always be 0. The third
      parameter is an artifact of the widespread lack of proper
      function template ordering, and will be removed in the future.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Library authors will be expected to add additional
      overloads that specialize the T argument for their classes, so
      that subobjects can be visited.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Calls to visit_each are required to be unqualified, to
      enable argument-dependent lookup.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id236836"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/last_value.hpp">boost/last_value.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id548314" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="last_value">last_value</fo:basic-link>;

&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id429900-bb">last_value</fo:basic-link>&lt;<fo:inline font-weight="bold">void</fo:inline>&gt;;
}</fo:block><fo:block break-before="page"><fo:block id="last_value"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template last_value</fo:block></fo:block><fo:block space-after="1em">Class template last_value <fo:inline font-family="serif">--</fo:inline> Evaluate an <fo:basic-link internal-destination="InputIterator">InputIterator</fo:basic-link> sequence and return the
      last value in the sequence.</fo:block><fo:block>boost::last_value</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id548410"><fo:block/><fo:block id="id548411" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; 
<fo:inline font-weight="bold">class</fo:inline> last_value {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T result_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id323338-bb">invocation</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="InputIterator">InputIterator</fo:basic-link>&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;result_type <fo:basic-link internal-destination="id325204-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(InputIterator, InputIterator) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id548511"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id548515"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">last_value invocation</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id323338-bb"/><fo:inline font-family="monospace">last_value</fo:inline> invocation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id548530" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id548536" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id548539" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="InputIterator">InputIterator</fo:basic-link>&gt; 
&#xA0;&#xA0;result_type <fo:wrapper id="id325204-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(InputIterator first, InputIterator last) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id548589" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id548593" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">first != last</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id548605" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Dereferences every iterator in the sequence <fo:inline font-family="monospace">[first, last)</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id548619" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The result of dereferencing the iterator <fo:inline font-family="monospace">last-1</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id548634"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Specializations</fo:marker><fo:block font-size="10pt">Specializations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id548638" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id548639" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="id429900-bb">Class last_value&lt;void&gt;</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id429900-bb"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class last_value&lt;void&gt;</fo:block></fo:block><fo:block space-after="1em">Class last_value&lt;void&gt; <fo:inline font-family="serif">--</fo:inline> Evaluate an InputIterator sequence.</fo:block><fo:block>boost::last_value&lt;void&gt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id548669"><fo:block/><fo:block id="id548670" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> last_value&lt;<fo:inline font-weight="bold">void</fo:inline>&gt; {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">unspecified</fo:inline> result_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id392780-bb">invocation</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="InputIterator">InputIterator</fo:basic-link>&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;result_type <fo:basic-link internal-destination="id508933-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(InputIterator, InputIterator) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id548770"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id548774"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">last_value invocation</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id392780-bb"/><fo:inline font-family="monospace">last_value</fo:inline> invocation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id548789" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id548795" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id548797" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="InputIterator">InputIterator</fo:basic-link>&gt; 
&#xA0;&#xA0;result_type <fo:wrapper id="id508933-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(InputIterator first, InputIterator last) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id548848" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id548851" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Dereferences every iterator in the sequence <fo:inline font-family="monospace">[first, last)</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id548866"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Frequently Asked Questions</fo:marker><fo:block font-size="17.28pt">Frequently Asked Questions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id548876"><fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2.5em"><fo:list-item id="id548877" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Don't noncopyable signal semantics mean that a class
        with a signal member will be noncopyable as well?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">No. The compiler will not be able to generate a copy
        constructor or copy assignment operator for your class if it
        has a signal as a member, but you are free to write your own
        copy constructor and/or copy assignment operator. Just don't
        try to copy the signal.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id548893" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Is Boost.Signals thread-safe?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">No. Using Boost.Signals in a multithreaded concept is
        very dangerous, and it is very likely that the results will be
        less than satisfying. Boost.Signals will support thread safety
        in the future.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id548906" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">How do I get Boost.Signals to work with Qt?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When building with Qt, the Moc keywords
        <fo:inline font-family="monospace">signals</fo:inline> and <fo:inline font-family="monospace">slots</fo:inline> are defined using
        preprocessor macros, causing programs using Boost.Signals and
        Qt together to fail to compile. Although this is a problem
        with Qt and not Boost.Signals, a user can use the two systems
        together by defining the <fo:inline font-family="monospace">BOOST_SIGNALS_NAMESPACE</fo:inline>
        macro to some other identifier (e.g., <fo:inline font-family="monospace">signalslib</fo:inline>)
        when building and using the Boost.Signals library. Then the
        namespace of the Boost.Signals library will be
        <fo:inline font-family="monospace">boost::BOOST_SIGNALS_NAMESPACE</fo:inline> instead of
        <fo:inline font-family="monospace">boost::signals</fo:inline>. To retain the original namespace
        name in translation units that do not interact with Qt, you
        can use a namespace alias:</fo:block><fo:block id="id548966" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
  namespace boost {
    namespace signals = BOOST_SIGNALS_NAMESPACE;
  }
</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="id548972"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Design Overview</fo:marker><fo:block font-size="17.28pt">Design Overview</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id548982"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Type Erasure</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">"Type erasure", where static type information is eliminated
    by the use of dynamically dispatched interfaces, is used
    extensively within the Boost.Signals library to reduce the amount
    of code generated by template instantiation. Each signal must
    manage a list of slots and their associated connections, along
    with a <fo:inline font-family="monospace">std::map</fo:inline> to map from group identifiers to
    their associated connections. However, instantiating this map for
    every token type, and perhaps within each translation unit (for
    some popular template instantiation strategies) increase compile
    time overhead and space overhead.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> To combat this so-called "template bloat", we use
    Boost.Function and Boost.Any to store unknown types and
    operations. Then, all of the code for handling the list of slots
    and the mapping from slot identifiers to connections is factored
    into the class <fo:inline font-family="monospace">signal_base</fo:inline>
    that deals exclusively with the <fo:inline font-family="monospace">any</fo:inline> and
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.function">function</fo:basic-link></fo:inline> objects, hiding the
    actual implementations using the well-known pimpl idiom. The
    actual <fo:inline font-family="monospace"><fo:basic-link internal-destination="signalN">signalN</fo:basic-link></fo:inline> class templates
    deal only with code that will change depending on the number of
    arguments or which is inherently template-dependent (such as
    connection).</fo:block></fo:block><fo:block id="id549053"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt"><fo:inline font-family="monospace">connection</fo:inline> class</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The <fo:inline font-family="monospace"><fo:basic-link internal-destination="connection">connection</fo:basic-link></fo:inline> class is
    central to the behavior of the Boost.Signals library. It is the
    only entity within the Boost.Signals system that has knowledge of
    all objects that are associated by a given connection. To be
    specific, the <fo:inline font-family="monospace"><fo:basic-link internal-destination="connection">connection</fo:basic-link></fo:inline> class
    itself is merely a thin wrapper over a
    <fo:inline font-family="monospace">shared_ptr</fo:inline> to a
    <fo:inline font-family="monospace">basic_connection</fo:inline> object.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace"><fo:basic-link internal-destination="connection">connection</fo:basic-link></fo:inline> objects are
    stored by all participants in the Signals system: each
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="trackable">trackable</fo:basic-link></fo:inline> object contains a
    list of <fo:inline font-family="monospace"><fo:basic-link internal-destination="connection">connection</fo:basic-link></fo:inline> objects
    describing all connections it is a part of; similarly, all signals
    contain a set of pairs that define a slot. The pairs consist of a
    slot function object (generally a Boost.Function object) and a
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="connection">connection</fo:basic-link></fo:inline> object (that will
    disconnect on destruction). Finally, the mapping from slot groups
    to slots is based on the key value in a
    <fo:inline font-family="monospace">std::multimap</fo:inline> (the stored data
    in the <fo:inline font-family="monospace">std::multimap</fo:inline> is the
    slot pair).</fo:block></fo:block><fo:block id="id549176"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Slot Call Iterator</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The slot call iterator is conceptually a stack of iterator
    adaptors that modify the behavior of the underlying iterator
    through the list of slots. The following table describes the type
    and behavior of each iterator adaptor required. Note that this is
    only a conceptual model: the implementation collapses all these
    layers into a single iterator adaptor because several popular
    compilers failed to compile the implementation of the conceptual
    model.</fo:block><fo:block id="id549191" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Iterator Adaptor</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Slot List Iterator</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An iterator through the list of slots
            connected to a signal. The <fo:inline font-family="monospace">value_type</fo:inline> of this
            iterator will be
            <fo:inline font-family="monospace">std::pair&lt;any,
            connection&gt;</fo:inline>, where the
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.any">any</fo:basic-link></fo:inline> contains an
            instance of the slot function type.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Filter Iterator Adaptor</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This filtering iterator adaptor filters out
            slots that have been disconnected, so we never see a
            disconnected slot in later stages.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Projection Iterator Adaptor</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The projection iterator adaptor returns a
            reference to the first member of the pair that constitutes
            a connected slot (e.g., just the
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link></fo:inline> object that
            holds the slot function).</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Transform Iterator Adaptor</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This transform iterator adaptor performs an
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="any_cast">any_cast</fo:basic-link></fo:inline> to
            extract a reference to the slot function with the
            appropriate slot function type.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Transform Iterator Adaptor</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This transform iterator adaptor calls the
            function object returned by dereferencing the underlying
            iterator with the set of arguments given to the signal
            itself, and returns the result of that slot
            call.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Input Caching Iterator Adaptor</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This iterator adaptor caches the result of
            dereferencing the underlying iterator. Therefore,
            dereferencing this iterator multiple times will only
            result in the underlying iterator being dereferenced once;
            thus, a slot can only be called once but its result can be
            used multiple times.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Slot Call Iterator</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Iterates over calls to each slot.</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="id549344"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt"><fo:inline font-family="monospace">visit_each</fo:inline> function template</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The <fo:inline font-family="monospace"><fo:basic-link internal-destination="visit_each">visit_each</fo:basic-link></fo:inline>
    function template is a mechanism for discovering objects that are
    stored within another object. Function template
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="visit_each">visit_each</fo:basic-link></fo:inline> takes three
    arguments: an object to explore, a visitor function object that is
    invoked with each subobject, and the <fo:inline font-family="monospace">int</fo:inline> 0. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The third parameter is merely a temporary solution to the
    widespread lack of proper function template partial ordering. The
    primary <fo:inline font-family="monospace"><fo:basic-link internal-destination="visit_each">visit_each</fo:basic-link></fo:inline>
    function template specifies this third parameter type to be
    <fo:inline font-family="monospace">long</fo:inline>, whereas any user specializations must specify
    their third parameter to be of type <fo:inline font-family="monospace">int</fo:inline>. Thus, even
    though a broken compiler cannot tell the ordering between, e.g., a
    match against a parameter <fo:inline font-family="monospace">T</fo:inline> and a parameter
    <fo:inline font-family="monospace">A&lt;T&gt;</fo:inline>, it can determine that the conversion from
    the integer 0 to <fo:inline font-family="monospace">int</fo:inline> is better than the conversion to
    <fo:inline font-family="monospace">long</fo:inline>. The ordering determined by this conversion thus
    achieves partial ordering of the function templates in a limited,
    but successful, way. The following example illustrates the use of
    this technique:</fo:block><fo:block id="id549455" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
template&lt;typename&gt; class A {};
template&lt;typename T&gt; void foo(T, long);
template&lt;typename T&gt; void foo(A&lt;T&gt;, int);
A&lt;T&gt; at;
foo(at, 0);
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> In this example, we assume that our compiler can not tell
    that <fo:inline font-family="monospace">A&lt;T&gt;</fo:inline> is a better match than
    <fo:inline font-family="monospace">T</fo:inline>, and therefore assume that the function templates
    cannot be ordered based on that parameter. Then the conversion
    from 0 to <fo:inline font-family="monospace">int</fo:inline> is better than the conversion from 0 to
    <fo:inline font-family="monospace">long</fo:inline>, and the second function template is
    chosen. </fo:block></fo:block></fo:block><fo:block id="id549496"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Design Rationale</fo:marker><fo:block font-size="17.28pt">Design Rationale</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id549506"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Choice of Slot Definitions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The definition of a slot differs amongst signals and slots
    libraries. Within Boost.Signals, a slot is defined in a very loose
    manner: it can be any function object that is callable given
    parameters of the types specified by the signal, and whose return
    value is convertible to the result type expected by the
    signal. However, alternative definitions have associated pros and
    cons that were considered prior to the construction of
    Boost.Signals.</fo:block><fo:list-block id="id549521" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id549522" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Slots derive from a specific base
        class</fo:inline>: generally a scheme such as this will require
        all user-defined slots to derive from some library-specified
        <fo:inline font-family="monospace">Slot</fo:inline> abstract class that defines a virtual
        function calling the slot. Adaptors can be used to convert a
        definition such as this to a definition similar to that used
        by Boost.Signals, but the use of a large number of small
        adaptor classes containing virtual functions has been found to
        cause an unacceptable increase in the size of executables
        (polymorphic class types require more code than
        non-polymorphic types).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> This approach does have the benefit of simplicity of
        implementation and user interface, from an object-oriented
        perspective.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id549553" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Slots constructed from a set of
        primitives</fo:inline>: in this scheme the slot can have a
        limited set of types (often derived from a common abstract
        base class) that are constructed from some library-defined set
        of primitives that often include conversions from free
        function pointers and member function pointers, and a limited
        set of binding capabilities. Such an approach is reasonably
        simple and cover most common cases, but it does not allow a
        large degree of flexibility in slot construction. Libraries
        for function object composition have become quite advanced and
        it is out of the scope of a signals and slots library to
        encorporate such enhancements. Thus Boost.Signals does not
        include argument binding or function object composition
        primitives, but instead provides a hook (via the
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="visit_each">visit_each</fo:basic-link></fo:inline>
        mechanism) that allows existing binder/composition libraries
        to provide the necessary information to Signals.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Users not satisfied with the slot definition choice may opt
    to replace the default slot function type with an alternative that
    meets their specific needs.</fo:block></fo:block><fo:block id="id549596"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">User-level Connection Management</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Users need to have fine control over the connection of
    signals to slots and their eventual disconnection. The approach
    taken by Boost.Signals is to return a
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="connection">connection</fo:basic-link></fo:inline> object that enables
    connected/disconnected query, manual disconnection, and an
    automatic disconnection on destruction mode. Some other possible
    interfaces include:</fo:block><fo:list-block id="id549620" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id549622" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Pass slot to
        disconnect</fo:inline>: in this interface model, the
        disconnection of a slot connected with
        <fo:inline font-family="monospace">sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(slot)</fo:inline> is
        performed via
        <fo:inline font-family="monospace">sig.<fo:basic-link internal-destination="id387664-bb">disconnect</fo:basic-link>(slot)</fo:inline>. Internally,
        a linear search using slot comparison is performed and the
        slot, if found, is removed from the list. Unfortunately,
        querying connectedness will generally also end up as
        linear-time operations. This model also fails for
        implementation reasons when slots become more complex than
        simple function pointers, member function pointers and a
        limited set of compositions and argument binders: to match the
        slot given in the call to
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="id387664-bb">disconnect</fo:basic-link></fo:inline> with an
        existing slot we would need to be able to compare arbitrary
        function objects, which is not feasible.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id549684" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Pass a token to
        disconnect</fo:inline>: this approach identifies slots with a
        token that is easily comparable (e.g., a string), enabling
        slots to be arbitrary function objects. While this approach is
        essentially equivalent to the approach taken by Boost.Signals,
        it is possibly more error-prone for several reasons:</fo:block><fo:list-block id="id549699" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id549700" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Connections and disconnections must be paired, so
            the problem becomes similar to the problems incurred when
            pairing <fo:inline font-family="monospace">new</fo:inline> and <fo:inline font-family="monospace">delete</fo:inline> for
            dynamic memory allocation. While errors of this sort would
            not be catastrophic for a signals and slots
            implementation, their detection is generally
            nontrivial.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id549722" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Tokens must be unique, otherwise two slots will have
            the same name and will be indistinguishable. In
            environments where many connections will be made
            dynamically, name generation becomes an additional task
            for the user. Uniqueness of tokens also results in an
            additional failure mode when attempting to connect a slot
            using a token that has already been used.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id549733" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>More parameterization would be required, because the
            token type must be user-defined. Additional
            parameterization steepens the learning curver and
            overcomplicates a simple interface.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> This type of interface is supported in Boost.Signals
        via the slot grouping mechanism. It augments the
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="connection">connection</fo:basic-link></fo:inline> object-based
        connection management scheme.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id549758"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Combiner Interface</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The Combiner interface was chosen to mimic a call to an
    algorithm in the C++ standard library. It is felt that by viewing
    slot call results as merely a sequence of values accessed by input
    iterators, the combiner interface would be most natural to a
    proficient C++ programmer. Competing interface design generally
    required the combiners to be constructed to conform to an
    interface that would be customized for (and limited to) the
    Signals library. While these interfaces are generally enable more
    straighforward implementation of the signals &amp; slots
    libraries, the combiners are unfortunately not reusable (either in
    other signals &amp; slots libraries or within other generic
    algorithms), and the learning curve is steepened slightly to learn
    the specific combiner interface.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The Signals formulation of combiners is based on the
    combiner using the "pull" mode of communication, instead of the
    more complex "push" mechanism. With a "pull" mechanism, the
    combiner's state can be kept on the stack and in the program
    counter, because whenever new data is required (i.e., calling the
    next slot to retrieve its return value), there is a simple
    interface to retrieve that data immediately and without returning
    from the combiner's code. Contrast this with the "push" mechanism,
    where the combiner must keep all state in class members because
    the combiner's routines will be invoked for each signal
    called. Compare, for example, a combiner that returns the maximum
    element from calling the slots. If the maximum element ever
    exceeds 100, no more slots are to be called.</fo:block><fo:block id="id549800" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Pull</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Push</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block id="id549821" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct pull_max {
  typedef int result_type;

  template&lt;typename InputIterator&gt;
  result_type operator()(InputIterator first,
                         InputIterator last)
  {
    if (first == last)
      throw std::runtime_error("Empty!");

    int max_value = *first++;
    while(first != last &amp;&amp; *first &lt;= 100) {
      if (*first &gt; max_value)
        max_value = *first;
      ++first;
    }

    return max_value;
  }
};
</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block id="id549838" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct push_max {
  typedef int result_type;

  push_max() : max_value(), got_first(false) {}

  // returns false when we want to stop
  bool operator()(int result) {
    if (result &gt; 100)
      return false;

    if (!got_first) {
      got_first = true;
      max_value = result;
      return true;
    }

    if (result &gt; max_value)
      max_value = result;

    return true;
  }

  int get_value() const 
  { 
    if (!got_first)
      throw std::runtime_error("Empty!");
    return max_value; 
  }

private:
  int  max_value; 
  bool got_first;
};
</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There are several points to note in these examples. The
    "pull" version is a reusable function object that is based on an
    input iterator sequence with an integer <fo:inline font-family="monospace">value_type</fo:inline>,
    and is very straightforward in design. The "push" model, on the
    other hand, relies on an interface specific to the caller and is
    not generally reusable. It also requires extra state values to
    determine, for instance, if any elements have been
    received. Though code quality and ease-of-use is generally
    subjective, the "pull" model is clearly shorter and more reusable
    and will often be construed as easier to write and understand,
    even outside the context of a signals &amp; slots library.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The cost of the "pull" combiner interface is paid in the
    implementation of the Signals library itself. To correctly handle
    slot disconnections during calls (e.g., when the dereference
    operator is invoked), one must construct the iterator to skip over
    disconnected slots. Additionally, the iterator must carry with it
    the set of arguments to pass to each slot (although a reference to
    a structure containing those arguments suffices), and must cache
    the result of calling the slot so that multiple dereferences don't
    result in multiple calls. This apparently requires a large degree
    of overhead, though if one considers the entire process of
    invoking slots one sees that the overhead is nearly equivalent to
    that in the "push" model, but we have inverted the control
    structures to make iteration and dereference complex (instead of
    making combiner state-finding complex).</fo:block></fo:block><fo:block id="id549934"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Connection Interfaces: +=  operator</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Boost.Signals supports a connection syntax with the form
    <fo:inline font-family="monospace">sig.<fo:basic-link internal-destination="id503915-bb">connect</fo:basic-link>(slot)</fo:inline>, but a
    more terse syntax <fo:inline font-family="monospace">sig += slot</fo:inline> has been suggested (and
    has been used by other signals &amp; slots implementations). There
    are several reasons as to why this syntax has been
    rejected:</fo:block><fo:list-block id="id549971" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id549972" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">It's unnecessary</fo:inline>: the
        connection syntax supplied by Boost.Signals is no less
        powerful that that supplied by the <fo:inline font-family="monospace">+=</fo:inline>
        operator. The savings in typing (<fo:inline font-family="monospace">connect()</fo:inline>
        vs. <fo:inline font-family="monospace">+=</fo:inline>) is essentially negligible. Furthermore,
        one could argue that calling <fo:inline font-family="monospace">connect()</fo:inline> is more
        readable than an overload of <fo:inline font-family="monospace">+=</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id550018" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Ambiguous return type</fo:inline>:
        there is an ambiguity concerning the return value of the
        <fo:inline font-family="monospace">+=</fo:inline> operation: should it be a reference to the
        signal itself, to enable <fo:inline font-family="monospace">sig += slot1 += slot2</fo:inline>,
        or should it return a
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="connection">connection</fo:basic-link></fo:inline> for the
        newly-created signal/slot connection?</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id550056" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Gateway to operators -=,
        +</fo:inline>: when one has added a connection operator
        <fo:inline font-family="monospace">+=</fo:inline>, it seems natural to have a disconnection
        operator <fo:inline font-family="monospace">-=</fo:inline>. However, this presents problems when
        the library allows arbitrary function objects to implicitly
        become slots, because slots are no longer comparable.  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The second obvious addition when one has
        <fo:inline font-family="monospace">operator+=</fo:inline> would be to add a <fo:inline font-family="monospace">+</fo:inline>
        operator that supports addition of multiple slots, followed by
        assignment to a signal. However, this would require
        implementing <fo:inline font-family="monospace">+</fo:inline> such that it can accept any two
        function objects, which is technically infeasible.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id550109"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt"><fo:inline font-family="monospace">trackable</fo:inline> rationale</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The <fo:inline font-family="monospace"><fo:basic-link internal-destination="trackable">trackable</fo:basic-link></fo:inline>
      class is the primary user interface to automatic connection
      lifetime management, and its design affects users directly. Two
      issues stick out most: the odd copying behavior of
      <fo:inline font-family="monospace">trackable</fo:inline>, and the limitation requiring users to
      derive from <fo:inline font-family="monospace">trackable</fo:inline> to create types that can
      participate in automatic connection management.</fo:block><fo:block id="id550152"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt"><fo:inline font-family="monospace">trackable</fo:inline> copying behavior</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The copying behavior of
      <fo:inline font-family="monospace"><fo:basic-link internal-destination="trackable">trackable</fo:basic-link></fo:inline> is essentially
      that <fo:inline font-family="monospace"><fo:basic-link internal-destination="trackable">trackable</fo:basic-link></fo:inline> subobjects
      are never copied; instead, the copy operation is merely a
      no-op. To understand this, we look at the nature of a
      signal-slot connection and note that the connection is based on
      the entities that are being connected; when one of the entities
      is destroyed, the connection is destroyed. Therefore, when a
      <fo:inline font-family="monospace"><fo:basic-link internal-destination="trackable">trackable</fo:basic-link></fo:inline> subobject is
      copied, we cannot copy the connections because the connections
      don't refer to the target entity - they refer to the source
      entity. This reason is dual to the reason signals are
      noncopyable: the slots connected to them are connected to that
      particular signal, not the data contained in the signal.</fo:block></fo:block><fo:block id="id550217"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Why derivation from <fo:inline font-family="monospace">trackable</fo:inline>?</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> For <fo:inline font-family="monospace"><fo:basic-link internal-destination="trackable">trackable</fo:basic-link></fo:inline> to work
      properly, there are two constraints:</fo:block><fo:list-block id="id550243" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id550244" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace"><fo:basic-link internal-destination="trackable">trackable</fo:basic-link></fo:inline> must
          have storage space to keep track of all connections made to
          this object.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id550260" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace"><fo:basic-link internal-destination="trackable">trackable</fo:basic-link></fo:inline> must be
          notified when the object is being destructed so that it can
          disconnect its connections.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Clearly, deriving from
      <fo:inline font-family="monospace"><fo:basic-link internal-destination="trackable">trackable</fo:basic-link></fo:inline> meets these two
      guidelines. We have not yet found a superior solution.</fo:block></fo:block></fo:block><fo:block id="id550292"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Comparison with other Signal/Slot implementations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id550296"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">libsigc++</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="http://libsigc.sourceforge.net">libsigc++</fo:basic-link> is a C++
      signals &amp; slots library that originally started as part of
      an initiative to wrap the C interfaces to <fo:basic-link external-destination="http://www.gtk.org">GTK</fo:basic-link> libraries in C++, and has
      grown to be a separate library maintained by Karl Nelson. There
      are many similarities between libsigc++ and Boost.Signals, and
      indeed Boost.Signals was strongly influenced by Karl Nelson and
      libsigc++. A cursory inspection of each library will find a
      similar syntax for the construction of signals and in the use of
      connections and automatic connection lifetime management. There
      are some major differences in design that separate these
      libraries:</fo:block><fo:list-block id="id550329" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id550330" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Slot definitions</fo:inline>:
          slots in libsigc++ are created using a set of primitives
          defined by the library. These primitives allow binding of
          objects (as part of the library), explicit adaptation from
          the argument and return types of the signal to the argument
          and return types of the slot (libsigc++ is, by default, more
          strict about types than Boost.Signals). A discussion of this
          approach with a comparison against the approach taken by
          Boost.Signals is given in Choice of Slot Definitions.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id550348" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Combiner/Marshaller
          interface</fo:inline>: the equivalent to Boost.Signals
          combiners in libsigc++ are the marshallers. Marshallers are
          similar to the "push" interface described in Combiner
          Interface, and a proper treatment of the topic is given
          there.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id550362"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">.NET delegates</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="http://www.microsoft.com">Microsoft</fo:basic-link>
      has introduced the .NET Framework and an associated set of
      languages and language extensions, one of which is the
      delegate. Delegates are similar to signals and slots, but they
      are more limited than most C++ signals and slots implementations
      in that they:</fo:block><fo:list-block id="id550379" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id550380" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Require exact type matches between a delegate and what
          it is calling.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id550385" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Only return the result of the last target called, with no option for customization.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id550390" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Must call a method with <fo:inline font-family="monospace">this</fo:inline> already
          bound.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block id="signals.tests"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Testsuite</fo:marker><fo:block font-size="17.28pt">Testsuite</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id550410"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Acceptance tests</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id550414" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2" column-width="1in"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Test</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">If failing...</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/signals/test/dead_slot_test.cpp">dead_slot_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Ensure that calling connect with a slot
that has already been disconnected via deletion does not actually
connect to the slot.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/signals/test/deletion_test.cpp">deletion_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test deletion of slots.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/signals/test/ordering_test.cpp">ordering_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test slot group ordering.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/signals/test/signal_n_test.cpp">signal_n_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Basic test of signal/slot connections and invocation using the
<fo:basic-link internal-destination="signalN">boost::signalN</fo:basic-link> class templates.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/signals/test/signal_test.cpp">signal_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Basic test of signal/slot connections and invocation using the
<fo:basic-link internal-destination="signal">boost::signal</fo:basic-link> class template.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="signal">boost::signal</fo:basic-link> class template may not
be usable on your compiler. However, the
<fo:basic-link internal-destination="signalN">boost::signalN</fo:basic-link> class templates may still be
usable.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/signals/test/trackable_test.cpp">trackable_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test automatic lifetime management using
      boost::trackable objects.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost String Algorithms Library</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost String Algorithms Library</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="string_algo"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Boost String Algorithms Library</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Pavol Droba</fo:block></fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2002-2004 Pavol Droba</fo:block><fo:block><fo:block id="id550621"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use, modification and distribution is subject to the Boost
                Software License, Version 1.0. (See accompanying file
                <fo:inline font-family="monospace">LICENSE_1_0.txt</fo:inline> or copy at <fo:basic-link external-destination="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</fo:basic-link>)
            </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="string_algo.intro"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="17.28pt">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        The String Algorithm Library provides a generic implementation of
        string-related algorithms which are missing in STL. It is an extension
        to the algorithms library of STL and it includes trimming, case conversion, 
        predicates and find/replace functions. All of them come in different variants 
        so it is easier to choose the best fit for a particular need.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        The implementation is not restricted to work with a particular container 
        (like <fo:inline font-family="monospace">std::basic_string</fo:inline>), rather it is as generic as
        possible. This generalization is not compromising the performance since
        algorithms are using container specific features when it means a performance
        gain.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">
            Important note: In this documentation we use term <fo:inline font-style="normal">string</fo:inline> to 
            designate a sequence of <fo:inline font-style="normal">characters</fo:inline> stored in an arbitrary container.
            A <fo:inline font-style="normal">string</fo:inline> is not restricted to <fo:inline font-family="monospace">std::basic_string</fo:inline> and 
            <fo:inline font-style="normal">character</fo:inline> does not have to be <fo:inline font-family="monospace">char</fo:inline> or <fo:inline font-family="monospace">wchar_t</fo:inline>,
            although these are most common candidates.
        </fo:inline>
        Consult the <fo:basic-link internal-destination="string_algo.design">design chapter</fo:basic-link> to see precise specification of
        supported string types.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">      
        The library interface functions and classes are defined in namespace <fo:inline font-family="monospace">boost::algorithm</fo:inline>, and
        they are lifted into namespace <fo:inline font-family="monospace">boost</fo:inline> via using declaration.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        The documentation is divided into several sections. For a quick start read the 
        <fo:basic-link internal-destination="string_algo.usage">Usage</fo:basic-link> section followed by 
        <fo:basic-link internal-destination="string_algo.quickref">Quick Reference</fo:basic-link>. 
        <fo:basic-link internal-destination="string_algo.design">The Design Topics</fo:basic-link>,
        <fo:basic-link internal-destination="string_algo.concept">Concepts</fo:basic-link> and <fo:basic-link internal-destination="string_algo.rationale">Rationale</fo:basic-link>
        provide some explanation about the library design and structure an explain how it should be used.
        See the <fo:basic-link internal-destination="string_algo.reference">Reference</fo:basic-link> for the complete list of provided utilities
        and algorithms. Functions and classes in the reference are organized by the headers in which they are defined.
        The reference contains links to the detailed description for every entity in the library.
    </fo:block></fo:block><fo:block id="string_algo.usage"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Usage</fo:marker><fo:block font-size="17.28pt">Usage</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id550844"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">First Example</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Using the algorithms is straightforward. Let us have a look at the first example:
        </fo:block><fo:block id="id550852" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    #include &lt;boost/algorithm/string.hpp&gt;
    using namespace std;
    using namespace boost;
    
    // ...

    string str1(" hello world! ");
    to_upper(str1);  // str1 == " HELLO WORLD! "
    trim(str1);      // str1 == "HELLO WORLD!"

    string str2=
       to_lower_copy(
          ireplace_first_copy(
             str1,"hello","goodbye")); // str2 == "goodbye world!"
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            This example converts str1 to upper case and trims spaces from the start and the end
            of the string. str2 is then created as a copy of str1 with "hello" replaced with "goodbye".
            This example demonstrates several important concepts used in the library:
        </fo:block><fo:list-block id="id550881" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id550882" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Container parameters:</fo:inline>
                    Unlike in the STL algorithms, parameters are not specified only in the form
                    of iterators. The STL convention allows for great flexibility,
                    but it has several limitations. It is not possible to <fo:inline font-style="italic">stack</fo:inline> algorithms together, 
                    because a container is passed in two parameters. Therefore it is not possible to use 
                    a return value from another algorithm. It is considerably easier to write
                    <fo:inline font-family="monospace">to_lower(str1)</fo:inline>, than <fo:inline font-family="monospace">to_lower(str1.begin(), str1.end())</fo:inline>.
                </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
                    The magic of <fo:basic-link internal-destination="string_algo.collection_traits">collection_traits</fo:basic-link> 
                    provides a uniform way of handling different string types. 
                    If there is a need to pass a pair of iterators, 
                    <fo:basic-link internal-destination="string_algo.iterator_range"><fo:inline font-family="monospace">iterator_range</fo:inline></fo:basic-link>
                    can be used to package iterators into a structure with a compatible interface.
                </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id550949" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Copy vs. Mutable:</fo:inline>
                    Many algorithms in the library are performing a transformation of the input. 
                    The transformation can be done in-place, mutating the input sequence, or a copy 
                    of the transformed input can be created, leaving the input intact. None of 
                    these possibilities is superior to the other one and both have different 
                    advantages and disadvantages. For this reason, both are provided with the library. 
                </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id550967" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Algorithm stacking:</fo:inline>
                    Copy versions return a transformed input as a result, thus allow a simple chaining of
                    transformations within one expression (i.e. one can write <fo:inline font-family="monospace">trim_copy(to_upper_copy(s))</fo:inline>). 
                    Mutable versions have <fo:inline font-family="monospace">void</fo:inline> return, to avoid misuse.
                </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id550993" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Naming:</fo:inline>
                    Naming follows the conventions from the Standard C++ Library. If there is a 
                    copy and a mutable version of the same algorithm, the mutable version has no suffix 
                    and the copy version has the suffix <fo:inline font-style="italic">_copy</fo:inline>. 
                    Some algorithms have the prefix <fo:inline font-style="italic">i</fo:inline> 
                    (e.g. <fo:basic-link internal-destination="ifind_first">ifind_first()</fo:basic-link>).
                    This prefix identifies that the algorithm works in a case-insensitive manner.
                </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            To use the library, include the <fo:basic-link internal-destination="id299529">boost/algorithm/string.hpp</fo:basic-link> header. 
            If the regex related functions are needed, include the 
            <fo:basic-link internal-destination="id263316">boost/algorithm/string_regex.hpp</fo:basic-link> header.
        </fo:block></fo:block><fo:block id="id551052"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Case conversion</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            STL has a nice way of converting character case. Unfortunately, it works only
            for a single character and we want to convert a string, 
        </fo:block><fo:block id="id551061" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    string str1("HeLlO WoRld!");
    to_upper(str1); // str1=="HELLO WORLD!"
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="to_upper">to_upper()</fo:basic-link> and <fo:basic-link internal-destination="to_lower">to_lower()</fo:basic-link> convert the case of 
            characters in a string using a specified locale.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            For more information see the reference for <fo:basic-link internal-destination="id350445">boost/algorithm/string/case_conv.hpp</fo:basic-link>.
        </fo:block></fo:block><fo:block id="id551104"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Predicates and Classification</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            A part of the library deals with string related predicates. Consider this example:
        </fo:block><fo:block id="id551112" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    bool is_executable( string&amp; filename )
    {
        return 
            iends_with(filename, ".exe") ||
            iends_with(filename, ".com");
    }

    // ...
    string str1("command.com");
    cout 
        &lt;&lt; str1
        &lt;&lt; is_executable("command.com")? "is": "is not" 
        &lt;&lt; "an executable" 
        &lt;&lt; endl; // prints "command.com is an executable"
    
    //..
    char text1[]="hello world!";
    cout 
        &lt;&lt; text1 
        &lt;&lt; all( text1, is_lower() )? "is": "is not"
        &lt;&lt; " written in the lower case" 
        &lt;&lt; endl; // prints "hello world! is written in the lower case"
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            The predicates determine whether if a substring is contained in the input string
            under various conditions. The conditions are: a string starts with the substring, 
            ends with the substring, 
            simply contains the substring or if both strings are equal. See the reference for 
            <fo:basic-link internal-destination="id366812">boost/algorithm/string/predicate.hpp</fo:basic-link> for more details. 
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  
            In addition the algorithm <fo:basic-link internal-destination="all">all()</fo:basic-link> checks
            all elements of a container to satisfy a condition specified by a predicate. 
            This predicate can be any unary predicate, but the library provides a bunch of 
            useful string-related predicates and combinators ready for use.
            These are located in the <fo:basic-link internal-destination="id388523">boost/algorithm/string/classification.hpp</fo:basic-link> header.
            Classification predicates can be combined using logical combinators to form
            a more complex expressions. For example: <fo:inline font-family="monospace">is_from_range('a','z') || is_digit()</fo:inline></fo:block></fo:block><fo:block id="id551189"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Trimming</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            When parsing the input from a user, strings usually have unwanted leading or trailing 
            characters. To get rid of them, we need trim functions:
        </fo:block><fo:block id="id551198" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    string str1="     hello world!     ";
    string str2=trim_left_copy(str1);   // str2 == "hello world!     "
    string str3=trim_right_copy(str2);  // str3 == "     hello world!"
    trim(str1);                         // str1 == "hello world!"

    string phone="00423333444";
    // remove leading 0 from the phone number
    trim_left_if(phone,is_any_of("0")); // phone == "423333444"
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            It is possible to trim the spaces on the right, on the left or on both sides of a string.
            And for those cases when there is a need to remove something else than blank space, there
            are <fo:inline font-style="italic">_if</fo:inline> variants. Using these, a user can specify a functor which will 
            select the <fo:inline font-style="italic">space</fo:inline> to be removed. It is possible to use classification 
            predicates like <fo:basic-link internal-destination="is_digit">is_digit()</fo:basic-link> mentioned in the previous paragraph.
            See the reference for the <fo:basic-link internal-destination="id263327">boost/algorithm/string/trim.hpp</fo:basic-link>.
        </fo:block></fo:block><fo:block id="id551249"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Find algorithms</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            The library contains a set of find algorithms. Here is an example:
        </fo:block><fo:block id="id551257" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    char text[]="hello dolly!";
    iterator_range&lt;char*&gt; result=find_last(text,"ll");

    transform( result.begin(), result.end(), result.begin(), bind2nd(plus&lt;char&gt;(), 1) );
    // text = "hello dommy!"            

    to_upper(result); // text == "hello doMMy!"

    // iterator_range is convertible to bool
    if(find_first(text, "dolly"))
    {
        cout &lt;&lt; "Dolly is there" &lt;&lt; endl;
    }
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            We have used <fo:basic-link internal-destination="find_last">find_last()</fo:basic-link> to search the <fo:inline font-family="monospace">text</fo:inline> for "ll".
            The result is given in the <fo:basic-link internal-destination="string_algo.iterator_range"><fo:inline font-family="monospace">iterator_range</fo:inline></fo:basic-link>. 
            This range delimits the
            part of the input which satisfies the find criteria. In our example it is the last occurrence of "ll".
            
            As we can see, input of the <fo:basic-link internal-destination="find_last">find_last()</fo:basic-link> algorithm can be also 
            char[] because this type is supported by 
            <fo:basic-link internal-destination="string_algo.collection_traits">collection_traits</fo:basic-link>.

            The following lines transform the result. Notice that 
            <fo:basic-link internal-destination="string_algo.iterator_range"><fo:inline font-family="monospace">iterator_range</fo:inline></fo:basic-link> has familiar 
            <fo:inline font-family="monospace">begin()</fo:inline> and <fo:inline font-family="monospace">end()</fo:inline> methods, so it can be used like any other STL container.
            Also it is convertible to bool therefore it is easy to use find algorithms for a simple containment checking.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Find algorithms are located in <fo:basic-link internal-destination="id448104">boost/algorithm/string/find.hpp</fo:basic-link>.
        </fo:block></fo:block><fo:block id="id551367"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Replace Algorithms</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Find algorithms can be used for searching for a specific part of string. Replace goes one step
            further. After a matching part is found, it is substituted with something else. The substitution is computed
            from the original, using some transformation. 
        </fo:block><fo:block id="id551379" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    string str1="Hello  Dolly,   Hello World!"
    replace_first(str1, "Dolly", "Jane");      // str1 == "Hello  Jane,   Hello World!"
    replace_last(str1, "Hello", "Goodbye");    // str1 == "Hello  Jane,   Goodbye World!"
    erase_all(str1, " ");                      // str1 == "HelloJane,GoodbyeWorld!"
    erase_head(str1, 6);                       // str1 == "Jane,GoodbyeWorld!"
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            For the complete list of replace and erase functions see the 
            <fo:basic-link internal-destination="string_algo.reference">reference</fo:basic-link>.
            There is a lot of predefined function for common usage, however, the library allows you to 
            define a custom <fo:inline font-family="monospace">replace()</fo:inline> that suits a specific need. There is a generic <fo:basic-link internal-destination="find_format">find_format()</fo:basic-link> 
            function which takes two parameters.
            The first one is a <fo:basic-link internal-destination="string_algo.finder_concept">Finder</fo:basic-link> object, the second one is 
            a <fo:basic-link internal-destination="string_algo.formatter_concept">Formatter</fo:basic-link> object. 
            The Finder object is a functor which performs the searching for the replacement part. The Formatter object
            takes the result of the Finder (usually a reference to the found substring) and creates a 
            substitute for it. Replace algorithm puts these two together and makes the desired substitution. 
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Check <fo:basic-link internal-destination="id439791">boost/algorithm/string/replace.hpp</fo:basic-link>, <fo:basic-link internal-destination="id236631">boost/algorithm/string/erase.hpp</fo:basic-link> and
            <fo:basic-link internal-destination="id333397">boost/algorithm/string/find_format.hpp</fo:basic-link> for reference.
        </fo:block></fo:block><fo:block id="id551484"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Find Iterator</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            An extension to find algorithms it the Find Iterator. Instead of searching for just a one part of a string, 
            the find iterator allows us to iterate over the substrings matching the specified criteria.
            This facility is using the <fo:basic-link internal-destination="string_algo.finder_concept">Finder</fo:basic-link> to incrementally
            search the string. 
            Dereferencing a find iterator yields an <fo:basic-link internal-destination="string_algo.iterator_range"><fo:inline font-family="monospace">iterator_range</fo:inline></fo:basic-link> 
            object, that delimits the current match.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            There are two iterators provided <fo:basic-link internal-destination="find_iterator">find_iterator</fo:basic-link> and 
            <fo:basic-link internal-destination="split_iterator">split_iterator</fo:basic-link>. The former iterates over substrings that are found using the specified
            Finder. The latter iterates over the gaps between these substrings.
        </fo:block><fo:block id="id551544" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    string str1("abc-*-ABC-*-aBc");
    // Find all 'abc' substrings (ignoring the case)
    // Create a find_iterator
    typedef find_iterator&lt;string::iterator&gt; string_find_iterator;
    for(string_find_iterator It=
            make_find_iterator(str1, first_finder("abc", is_iequal()));
        It!=string_find_iterator();
        ++It)
    {
        cout &lt;&lt; copy_iterator_range&lt;std::string&gt;(*It) &lt;&lt; endl;
    }

    // Output will be:
    // abc
    // ABC
    // aBC
    
    typedef split_iterator&lt;string::iterator&gt; string_split_iterator;
    for(string_find_iterator It=
        make_split_iterator(str1, first_finder("-*-", is_iequal()));
        It!=string_find_iterator();
        ++It)
    {
        cout &lt;&lt; copy_iterator_range&lt;std::string&gt;(*It) &lt;&lt; endl;
    }

    // Output will be:
    // abc
    // ABC
    // aBC
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Note that the find iterators have only one template parameter. It is the base iterator type.
            The Finder is specified at runtime. This allows us to typedef a find iterator for
            common string types and reuse it. Additionally make_*_iterator functions help
            to construct a find iterator for a particular collection.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            See the reference in <fo:basic-link internal-destination="id254240">boost/algorithm/string/find_iterator.hpp</fo:basic-link>.
        </fo:block></fo:block><fo:block id="id551587"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Split</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Split algorithms are an extension to the find iterator for one common usage scenario.
            These algorithms use a find iterator and store all matches into the provided
            container. This container must be able to hold copies (e.g. <fo:inline font-family="monospace">std::string</fo:inline>) or 
            references (e.g. <fo:inline font-family="monospace">iterator_range</fo:inline>) of the extracted substrings.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Two algorithms are provided. <fo:basic-link internal-destination="find_all">find_all()</fo:basic-link> finds all copies
            of a string in the input. <fo:basic-link internal-destination="id479732">split()</fo:basic-link> splits the input into parts.
        </fo:block><fo:block id="id551637" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    string str1("hello abc-*-ABC-*-aBc goodbye");

    typedef vector&lt; iterator_range&lt;string::iterator&gt; &gt; find_vector_type;
    
    find_vector_type FindVec; // #1: Search for separators
    ifind_all( FindVec, str1, "abc" ); // FindVec == { [abc],[ABC],[aBc] }

    typedef vector&lt; string &gt; split_vector_type;
    
    split_vector_type SplitVec; // #2: Search for tokens
    split( SplitVec, str1, is_any_of("-*") ); // SplitVec == { "hello abc","ABC","aBc goodbye" }
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">[hello]</fo:inline> designates an <fo:inline font-family="monospace">iterator_range</fo:inline> delimiting this substring.                       
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            First example show how to construct a container to hold references to all extracted
            substrings. Algorithm <fo:basic-link internal-destination="ifind_all">ifind_all()</fo:basic-link> puts into FindVec references
            to all substrings that are in case-insensitive manner equal to "abc".
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Second example uses <fo:basic-link internal-destination="id479732">split()</fo:basic-link> to split string str1 into parts
            separated by characters '-' or '*'. These parts are then put into the SplitVec.
            It is possible to specify if adjacent separators are concatenated or not.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            More information can be found in the reference: <fo:basic-link internal-destination="id477625">boost/algorithm/string/split.hpp</fo:basic-link>.
        </fo:block></fo:block></fo:block><fo:block id="string_algo.quickref"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Quick Reference</fo:marker><fo:block font-size="17.28pt">Quick Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id551727"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Algorithms</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block span="none"><fo:block id="id551731" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;1.&#xA0;Case Conversion</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Algorithm name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Functions</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">to_upper</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Convert a string to upper case</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="to_upper_copy">to_upper_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="to_upper">to_upper()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">to_lower</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Convert a string to lower case</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="to_lower_copy">to_lower_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="to_lower">to_lower()</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block span="none"><fo:block id="id551808" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;2.&#xA0;Trimming</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Algorithm name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Functions</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">trim_left</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Remove leading spaces from a string</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="trim_left_copy_if">trim_left_copy_if()</fo:basic-link><fo:block/><fo:basic-link internal-destination="trim_left_if">trim_left_if()</fo:basic-link><fo:block/><fo:basic-link internal-destination="trim_left_copy">trim_left_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="trim_left">trim_left()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">trim_right</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Remove trailing spaces from a string</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="trim_right_copy_if">trim_right_copy_if()</fo:basic-link><fo:block/><fo:basic-link internal-destination="trim_right_if">trim_right_if()</fo:basic-link><fo:block/><fo:basic-link internal-destination="trim_right_copy">trim_right_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="trim_right">trim_right()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">trim</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Remove leading and trailing spaces from a string</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="trim_copy_if">trim_copy_if()</fo:basic-link><fo:block/><fo:basic-link internal-destination="trim_if">trim_if()</fo:basic-link><fo:block/><fo:basic-link internal-destination="trim_copy">trim_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="trim">trim()</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block span="none"><fo:block id="id551976" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;3.&#xA0;Predicates</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Algorithm name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Functions</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">starts_with</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Check if a string is a prefix of the other one</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="starts_with">starts_with()</fo:basic-link><fo:block/><fo:basic-link internal-destination="istarts_with">istarts_with()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">ends_with</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Check if a string is a suffix of the other one</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="ends_with">ends_with()</fo:basic-link><fo:block/><fo:basic-link internal-destination="iends_with">iends_with()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">contains</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Check if a string is contained of the other one</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="contains">contains()</fo:basic-link><fo:block/><fo:basic-link internal-destination="icontains">icontains()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">equals</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Check if two strings are equal</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="equals">equals()</fo:basic-link><fo:block/><fo:basic-link internal-destination="iequals">iequals()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">all</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Check if all elements of a string satisfy the given predicate</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="all">all()</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block span="none"><fo:block id="id552132" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;4.&#xA0;Find algorithms</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Algorithm name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Functions</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>find_first</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Find the first occurrence of a string in the input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="find_first">find_first()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ifind_first">ifind_first()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>find_last</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Find the last occurrence of a string in the input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="find_last">find_last()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ifind_last">ifind_last()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>find_nth</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Find the nth (zero-indexed) occurrence of a string in the input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="find_nth">find_nth()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ifind_nth">ifind_nth()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>find_head</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Retrieve the head of a string</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="find_head">find_head()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>find_tail</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Retrieve the tail of a string</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="find_tail">find_tail()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>find_token</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Find first matching token in the string</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="find_token">find_token()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>find_regex</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Use the regular expression to search the string</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="find_regex">find_regex()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>find</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Generic find algorithm</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="find">find()</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block span="none"><fo:block id="id552312" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;5.&#xA0;Erase/Replace</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Algorithm name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Functions</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>replace/erase_first</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Replace/Erase the first occurrence of a string in the input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="replace_first">replace_first()</fo:basic-link><fo:block/><fo:basic-link internal-destination="replace_first_copy">replace_first_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ireplace_first">ireplace_first()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ireplace_first_copy">ireplace_first_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_first">erase_first()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_first_copy">erase_first_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ierase_first">ierase_first()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ierase_first_copy">ierase_first_copy()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>replace/erase_last</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Replace/Erase the last occurrence of a string in the input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="replace_last">replace_last()</fo:basic-link><fo:block/><fo:basic-link internal-destination="replace_last_copy">replace_last_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ireplace_last">ireplace_last()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ireplace_last_copy">ireplace_last_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_last">erase_last()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_last_copy">erase_last_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ierase_last">ierase_last()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ierase_last_copy">ierase_last_copy()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>replace/erase_nth</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Replace/Erase the nth (zero-indexed) occurrence of a string in the input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="replace_nth">replace_nth()</fo:basic-link><fo:block/><fo:basic-link internal-destination="replace_nth_copy">replace_nth_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ireplace_nth">ireplace_nth()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ireplace_nth_copy">ireplace_nth_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_nth">erase_nth()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_nth_copy">erase_nth_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ierase_nth">ierase_nth()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ierase_nth_copy">ierase_nth_copy()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>replace/erase_all</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Replace/Erase the all occurrences of a string in the input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="replace_all">replace_all()</fo:basic-link><fo:block/><fo:basic-link internal-destination="replace_all_copy">replace_all_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ireplace_all">ireplace_all()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ireplace_all_copy">ireplace_all_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_all">erase_all()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_all_copy">erase_all_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ierase_all">ierase_all()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ierase_all_copy">ierase_all_copy()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>replace/erase_head</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Replace/Erase the head of the input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="replace_head">replace_head()</fo:basic-link><fo:block/><fo:basic-link internal-destination="replace_head_copy">replace_head_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_head">erase_head()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_head_copy">erase_head_copy()</fo:basic-link><fo:block/></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>replace/erase_tail</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Replace/Erase the tail of the input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="replace_tail">replace_tail()</fo:basic-link><fo:block/><fo:basic-link internal-destination="replace_tail_copy">replace_tail_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_tail">erase_tail()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_tail_copy">erase_tail_copy()</fo:basic-link><fo:block/></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>replace/erase_regex</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Replace/Erase a substring matching the given regular expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="replace_regex">replace_regex()</fo:basic-link><fo:block/><fo:basic-link internal-destination="replace_regex_copy">replace_regex_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_regex">erase_regex()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_regex_copy">erase_regex_copy()</fo:basic-link><fo:block/></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>replace/erase_regex_all</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Replace/Erase all substrings matching the given regular expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="replace_all_regex">replace_all_regex()</fo:basic-link><fo:block/><fo:basic-link internal-destination="replace_all_regex_copy">replace_all_regex_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_all_regex">erase_all_regex()</fo:basic-link><fo:block/><fo:basic-link internal-destination="erase_all_regex_copy">erase_all_regex_copy()</fo:basic-link><fo:block/></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>find_format</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Generic replace algorithm</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="find_format">find_format()</fo:basic-link><fo:block/><fo:basic-link internal-destination="find_format_copy">find_format_copy()</fo:basic-link><fo:block/><fo:basic-link internal-destination="find_format_all">find_format_all()</fo:basic-link><fo:block/><fo:basic-link internal-destination="find_format_all_copy">find_format_all_copy()()</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block span="none"><fo:block id="id552906" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;6.&#xA0;Split</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Algorithm name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Functions</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>find_all</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Find/Extract all matching substrings in the input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="find_all">find_all()</fo:basic-link><fo:block/><fo:basic-link internal-destination="ifind_all">ifind_all()</fo:basic-link><fo:block/><fo:basic-link internal-destination="find_all_regex">find_all_regex()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>split</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Split input into parts</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="id479732">split()</fo:basic-link><fo:block/><fo:basic-link internal-destination="split_regex">split_regex()</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="id552984"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Finders and Formatters</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block span="none"><fo:block id="id552988" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;7.&#xA0;Finders</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Finder</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Generators</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>first_finder</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Search for the first match of the string in an input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="first_finder">first_finder()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>last_finder</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Search for the last match of the string in an input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="last_finder">last_finder()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>nth_finder</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Search for the nth (zero-indexed) match of the string in an input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="nth_finder">nth_finder()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>head_finder</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Retrieve the head of an input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="head_finder">head_finder()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>tail_finder</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Retrieve the tail of an input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="tail_finder">tail_finder()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>token_finder</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Search for a matching token in an input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="token_finder">token_finder()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>range_finder</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Do no search, always returns the given range</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="range_finder">range_finder()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>regex_finder</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Search for a substring matching the given regex</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="id363826">regex_finder()</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block span="none"><fo:block id="id553143" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;8.&#xA0;Formatters</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Formatter</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Generators</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>const_formatter</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Constant formatter. Always return the specified string</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="const_formatter">const_formatter()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>identity_formatter</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Identity formatter. Return unmodified input input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="identity_formatter">identity_formatter()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>empty_formatter</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Null formatter. Always return an empty string</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="empty_formatter">empty_formatter()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>regex_formatter</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Regex formatter. Format regex match using the specification in the format string</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="id308968">regex_formatter()</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="id553234"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Iterators</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block span="none"><fo:block id="id553238" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;9.&#xA0;Find Iterators</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Iterator name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Iterator class</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>find_iterator</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Iterates through matching substrings in the input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="find_iterator">find_iterator</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>split_iterator</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Iterates through gaps between matching substrings in the input</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="split_iterator">split_iterator</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="id553290"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Classification</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block span="none"><fo:block id="id553294" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;10.&#xA0;Predicates</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Predicate name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Generator</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>is_classified</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Generic <fo:inline font-family="monospace">ctype</fo:inline> mask based classification</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="is_classified">is_classified()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>is_space</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Recognize spaces</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="is_space">is_space()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>is_alnum</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Recognize alphanumeric characters</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="is_alnum">is_alnum()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>is_alpha</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Recognize letters</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="is_alpha">is_alpha()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>is_cntrl</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Recognize control characters</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="is_cntrl">is_cntrl()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>is_digit</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Recognize decimal digits</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="is_digit">is_digit()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>is_graph</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Recognize graphical characters</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="is_graph">is_graph()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>is_lower</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Recognize lower case characters</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="is_lower">is_lower()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>is_print</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Recognize printable characters</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="is_print">is_print()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>is_punct</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Recognize punctuation characters</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="is_punct">is_punct()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>is_upper</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Recognize uppercase characters</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="is_upper">is_upper()</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>is_xdigit</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Recognize hexadecimal digits</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="is_xdigit">is_xdigit()</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block><fo:block id="string_algo.design"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Design Topics</fo:marker><fo:block font-size="17.28pt">Design Topics</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="string_algo.string"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">String Representation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            As the name suggest, this library works mainly with strings. However, in the context of this library,
            a string is not restricted to any particular implementation (like <fo:inline font-family="monospace">std::basic_string</fo:inline>),
            rather it is a concept. This allows the algorithms in this library to be reused for any string type,
            that satisfies the given requirements.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Definition:</fo:inline> A string is a 
            <fo:basic-link external-destination="../../libs/utility/Collection.html">collection</fo:basic-link> of characters accessible in sequential
            ordered fashion. Character is any value type with "cheap" copying and assignment.                
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            First requirement of string-type is that it must accessible using 
            <fo:basic-link internal-destination="string_algo.collection_traits">collection traits</fo:basic-link>. This facility allows to access
            the elements inside the string in a uniform iterator-based fashion. 
            This requirement is actually less stringent than that of collection concept. It implements 
            an <fo:basic-link external-destination="../../libs/algorithm/string/doc/external_concepts.html">external</fo:basic-link> collection interface.
            This is sufficient for our library
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">            
            Second requirement defines the way in which the characters are stored in the string. Algorithms in 
            this library work with an assumption that copying a character is cheaper then allocating extra 
            storage to cache results. This is a natural assumption for common character types. Algorithms will 
            work even if this requirement is not satisfied, however at the cost of performance degradation.
        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/>
            In addition some algorithms have additional requirements on the string-type. Particularly, it is required
            that an algorithm can create a new string of the given type. In this case, it is required that
            the type satisfies the sequence (Std &#xA7;23.1.1) requirements.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            In the reference and also in the code, requirement on the string type is designated by the name of
            template argument. <fo:inline font-family="monospace">CollectionT</fo:inline> means that the basic collection requirements must hold.
            <fo:inline font-family="monospace">SequenceT</fo:inline> designates extended sequence requirements.
        </fo:block></fo:block><fo:block id="string_algo.iterator_range"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt"><fo:inline font-family="monospace">iterator_range</fo:inline> class</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            An <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link> is an encapsulation of a pair of iterators that
            delimit a sequence (or, a range). This concept is widely used by 
            sequence manipulating algorithms. Although being so useful, there no direct support 
            for it in the standard library (The closest thing is that some algorithms return a pair of iterators). 
            Instead all STL algorithms have two distinct parameters for beginning and end of a range. This design 
            is natural for implementation of generic algorithms, but it forbids to work with a range as a single value. 
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            It is possible to encapsulate a range in <fo:inline font-family="monospace">std::pair&lt;&gt;</fo:inline>, but
            <fo:inline font-family="monospace">std::pair&lt;&gt;</fo:inline> is an overly generic encapsulation, so it is not best match for a range.
            For instance, it does not enforce that begin and end iterators be of the same type.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Naturally the range concept is heavily used also in this library. During the development of
            the library, it was discovered, that there is a need for a reasonable encapsulation for it, since
            core part of the library deals with substring searching algorithms and any such algorithm
            returns a range delimiting the result of the search. <fo:inline font-family="monospace">std::pair&lt;&gt;</fo:inline> was deemed as 
            unsuitable. Therefore the <fo:inline font-family="monospace">iterator_range</fo:inline> was defined.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            The intention of the <fo:inline font-family="monospace">iterator_range</fo:inline> class is to manage a range as a single value and provide 
            a basic interface for common operations. Its interface is similar to that of a collection. 
            In addition to <fo:inline font-family="monospace">begin()</fo:inline>
            and <fo:inline font-family="monospace">end()</fo:inline> accessors, it has member functions for checking whether the range is empty,
            or to determine the size of the range. It also has a set of member typedefs that extract
            type information from the encapsulated iterators. As such, the interface is compatible with 
            the <fo:basic-link internal-destination="string_algo.collection_traits">collection traits</fo:basic-link> requirements so
            it is possible to use this class as a parameter to many algorithms in this library.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link> will be moved to Boost.Range library in the future
            releases. The internal version will be deprecated then.
        </fo:block></fo:block><fo:block id="string_algo.collection_traits"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Collection Traits</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Collection traits provide uniform access to different types of 
            <fo:basic-link external-destination="../../libs/utility/Collection.html">collections</fo:basic-link> . 
            This functionality allows to write generic algorithms which work with several 
            different kinds of collections. For this library it means, that, for instance,
            many algorithms work with <fo:inline font-family="monospace">std::string</fo:inline> as well as with <fo:inline font-family="monospace">char[]</fo:inline>.
            This facility implements the
            <fo:basic-link external-destination="../../libs/algorithm/string/doc/external_concepts.html">external</fo:basic-link> collection
            concept.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            The following collection types are supported:
            <fo:list-block id="id553826" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id553827" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                    Standard containers
                </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id553831" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                    Built-in arrays (like int[])
                </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id553835" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                    Null terminated strings (this includes char[],wchar_t[],char*, and wchar_t*)
                </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id553839" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                    std::pair&lt;iterator,iterator&gt;
                </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Collection traits support a subset of the container concept (Std &#xA7;23.1). This subset 
            can be described as an input container concept, e.g. a container with immutable content. 
            Its definition can be found in the header <fo:basic-link internal-destination="id407166">boost/algorithm/string/collection_traits.hpp</fo:basic-link>.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            In the table C denotes a container and c is an object of C. 
        </fo:block><fo:block span="none"><fo:block id="id553872" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;11.&#xA0;Collection Traits</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Standard collection equivalent</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="value_type_of">value_type_of&lt;C&gt;</fo:basic-link>::type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">C::value_type</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Type of contained values</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="difference_type_of">difference_type_of&lt;C&gt;</fo:basic-link>::type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">C::difference_type</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>difference type of the collection</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="iterator_of">iterator_of&lt;C&gt;</fo:basic-link>::type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">C::iterator</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>iterator type of the collection</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="const_iterator_of">const_iterator_of&lt;C&gt;</fo:basic-link>::type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">C::const_iterator</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>const_iterator type of the collection</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="result_iterator_of">result_iterator_of&lt;C&gt;</fo:basic-link>::type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>
                            result_iterator type of the collection. This type maps to <fo:inline font-family="monospace">C::iterator</fo:inline>
                            for mutable collection and <fo:inline font-family="monospace">C::const_iterator</fo:inline> for const collection.
                        </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="begin">begin(c)</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">c.begin()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>
                            Gets the iterator pointing to the start of the collection.
                        </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="end">end(c)</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">c.end()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>
                            Gets the iterator pointing to the end of the collection.
                        </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="size">size(c)</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">c.size()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>
                            Gets the size of the collection.
                        </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="empty">empty(c)</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">c.empty()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block>
                            Checks if the collection is empty.
                        </fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            The collection traits are only a temporary part of this library. They will be replaced in the future
            releases by Boost.Range library. Use of the internal implementation will be deprecated then.
        </fo:block></fo:block><fo:block id="string_algo.sequence_traits"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Sequence Traits</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            The major difference between <fo:inline font-family="monospace">std::list</fo:inline> and <fo:inline font-family="monospace">std::vector</fo:inline> is not in the interfaces
            they provide, but rather in the inner details of the class and the way how it performs 
            various operations. The problem is that it is not possible to infer this difference from the 
            definitions of classes without some special mechanism.
            However, some algorithms can run significantly faster with the knowledge of the properties
            of a particular container.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Sequence traits allow one to specify additional properties of a sequence container (see Std.&#xA7;32.2).
            These properties are then used by algorithms to select optimized handling for some operations.
            The sequence traits are declared in the header 
            <fo:basic-link internal-destination="id264095">boost/algorithm/string/sequence_traits.hpp</fo:basic-link>.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            In the table C denotes a container and c is an object of C.
        </fo:block><fo:block span="none"><fo:block id="id554171" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;12.&#xA0;Sequence Traits</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Trait</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="has_native_replace">has_native_replace&lt;C&gt;</fo:basic-link>::value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Specifies that the sequence has std::string like replace method</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="has_stable_iterators">has_stable_iterators&lt;C&gt;</fo:basic-link>::value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>
                            Specifies that the sequence has stable iterators. It means,
                            that operations like <fo:inline font-family="monospace">insert</fo:inline>/<fo:inline font-family="monospace">erase</fo:inline>/<fo:inline font-family="monospace">replace</fo:inline> 
                            do not invalidate iterators.
                        </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="has_const_time_insert">has_const_time_insert&lt;C&gt;</fo:basic-link>::value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>
                            Specifies that the insert method of the sequence has 
                            constant time complexity.
                        </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="has_const_time_erase">has_const_time_erase&lt;C&gt;</fo:basic-link>::value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block>
                            Specifies that the erase method of the sequence has constant time complexity
                        </fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Current implementation contains specializations for std::list&lt;T&gt; and
            std::basic_string&lt;T&gt; from the standard library and SGI's std::rope&lt;T&gt; and std::slist&lt;T&gt;.
        </fo:block></fo:block><fo:block id="string_algo.find"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Find Algorithms</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Find algorithms have similar functionality to <fo:inline font-family="monospace">std::search()</fo:inline> algorithm. They provide a different 
            interface which is more suitable for common string operations. 
            Instead of returning just the start of matching subsequence they return a range which is necessary 
            when the length of the matching subsequence is not known beforehand. 
            This feature also allows a partitioning of  the input sequence into three 
            parts: a prefix, a substring and a suffix. 
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Another difference is an addition of various searching methods besides find_first, including find_regex. 
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            It the library, find algorithms are implemented in terms of 
            <fo:basic-link internal-destination="string_algo.finder_concept">Finders</fo:basic-link>. Finders are used also by other facilities 
            (replace,split).
            For convenience, there are also function wrappers for these finders to simplify find operations.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Currently the library contains only naive implementation of find algorithms with complexity 
            O(n * m) where n is the size of the input sequence and m is the size of the search sequence. 
            There are algorithms with complexity O(n), but for smaller sequence a constant overhead is 
            rather big. For small m &lt;&lt; n (m by magnitude smaller than n) the current implementation 
            provides acceptable efficiency. 
            Even the C++ standard defines the required complexity for search algorithm as O(n * m). 
            It is possible that a future version of library will also contain algorithms with linear 
            complexity as an option
        </fo:block></fo:block><fo:block id="string_algo.replace"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Replace Algorithms</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            The implementation of replace algorithms follows the layered structure of the library. The 
            lower layer implements generic substitution of a range in the input sequence. 
            This layer takes a <fo:basic-link internal-destination="string_algo.finder_concept">Finder</fo:basic-link> object and a 
            <fo:basic-link internal-destination="string_algo.formatter_concept">Formatter</fo:basic-link> object as an input. These two 
            functors define what to replace and what to replace it with. The upper layer functions 
            are just wrapping calls to the lower layer. Finders are shared with the find and split facility. 
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            As usual, the implementation of the lower layer is designed to work with a generic sequence while
            taking advantage of specific features if possible 
            (by using <fo:basic-link internal-destination="string_algo.sequence_traits">Sequence traits</fo:basic-link>)
        </fo:block></fo:block><fo:block id="string_algo.split"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Find Iterators &amp; Split Algorithms</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Find iterators are a logical extension of the <fo:basic-link internal-destination="string_algo.find">find facility</fo:basic-link>.
            Instead of searching for one match, the whole input can be iteratively searched for multiple matches.
            The result of the search is then used to partition the input. It depends on the algorithms which parts 
            are returned as the result. They can be the matching parts (<fo:basic-link internal-destination="find_iterator">find_iterator</fo:basic-link>) of the parts in
            between (<fo:basic-link internal-destination="split_iterator">split_iterator</fo:basic-link>). 
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            In addition the split algorithms like <fo:basic-link internal-destination="find_all">find_all()</fo:basic-link> and <fo:basic-link internal-destination="id479732">split()</fo:basic-link>
            can simplify the common operations. They use a find iterator to search the whole input and copy the 
            matches they found into the supplied container.
        </fo:block></fo:block><fo:block id="string_algo.exception"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Exception Safety</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            The library requires that all operations on types used as template
            or function arguments provide the <fo:inline font-style="italic">basic exception-safety guarantee</fo:inline>. 
            In turn, all functions and algorithms in this library, except where stated
            otherwise, will provide the <fo:inline font-style="italic">basic exception-safety guarantee</fo:inline>.
            In other words:
            The library maintains its invariants and does not leak resources in
            the face of exceptions.  Some library operations give stronger
            guarantees, which are documented on an individual basis.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Some functions can provide the <fo:inline font-style="italic">strong exception-safety guarantee</fo:inline>.
            That means that following statements are true:    
            <fo:list-block id="id554534" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id554536" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                    If an exception is thrown, there are no effects other than those
                    of the function 
                </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id554541" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                    If an exception is thrown other than by the function, there are no effects
                </fo:block></fo:list-item-body></fo:list-item></fo:list-block>
            This guarantee can be provided under the condition that the operations 
            on the types used for arguments for these functions either
            provide the strong exception guarantee or do not alter the global state .
         </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            In the reference, under the term <fo:inline font-style="italic">strong exception-safety guarantee</fo:inline>, we mean the
            guarantee as defined above.            
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            For more information about the exception safety topics, follow this 
            <fo:basic-link external-destination="../../more/generic_exception_safety.html">link</fo:basic-link></fo:block></fo:block></fo:block><fo:block id="string_algo.concept"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Concepts</fo:marker><fo:block font-size="17.28pt">Concepts</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id554583"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Definitions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block span="none"><fo:block id="id554587" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;13.&#xA0;Notation</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">F</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>A type that is a model of Finder</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">Fmt</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>A type that is a model of Formatter</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">Iter</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>
                            Iterator Type
                        </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">f</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Object of type <fo:inline font-family="monospace">F</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">fmt</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Object of type <fo:inline font-family="monospace">Fmt</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">i,j</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block>Objects of type <fo:inline font-family="monospace">Iter</fo:inline></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="string_algo.finder_concept"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Finder Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Finder is a functor which searches for an arbitrary part of a container. 
            The result of the search is given as an <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link> 
            delimiting the selected part.
        </fo:block><fo:block span="none"><fo:block id="id554699" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;14.&#xA0;Valid Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Return Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">f(i,j)</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Convertible to <fo:inline font-family="monospace">iterator_range&lt;Iter&gt;</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block>Perform the search on the interval [i,j) and returns the result of the search</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Various algorithms need to perform a search in a container and a Finder is a generalization of such
            search operations that allows algorithms to abstract from searching. For instance, generic replace
            algorithms can replace any part of the input, and the Finder is used to select the desired one.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Note, that it is only required that the finder works with a particular iterator type. However,
            a Finder operation can be defined as a template, allowing the Finder to work with any iterator.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Examples</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id554763" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id554764" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                    Finder implemented as a class. This Finder always returns the whole input as a match. <fo:inline font-family="monospace">operator()</fo:inline>
                    is templated, so that the finder can be used on any iterator type.
                    
                    <fo:block id="id554777" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct simple_finder
{
    template&lt;typename ForwardIteratorT&gt;
    boost::iterator_range&lt;ForwardIterator&gt; operator()(
        ForwardIteratorT Begin,
        ForwardIteratorT End )
    {
        return boost::make_range( Begin, End );
    }
};
        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id554794" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                    Function Finder. Finder can be any function object. That is, any ordinary function with the
                    required signature can be used as well. However, such a function can be used only for
                    a specific iterator type. 
                    
                    <fo:block id="id554802" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
boost::iterator_range&lt;std::string&gt; simple_finder(
    std::string::const_iterator Begin,
    std::string::const_iterator End )
{
    return boost::make_range( Begin, End );
}
        </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="string_algo.formatter_concept"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Formatter concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Formatters are used by <fo:basic-link internal-destination="string_algo.replace">replace algorithms</fo:basic-link>.
            They are used in close combination with finders.
            A formatter is a functor, which takes a result from a Finder operation and transforms it in a specific way. 
            The operation of the formatter can use additional information provided by a specific finder,
            for example <fo:basic-link internal-destination="id308968">regex_formatter()</fo:basic-link> uses the match information from
            <fo:basic-link internal-destination="id363826">regex_finder()</fo:basic-link> to format the result of formatter operation.
        </fo:block><fo:block span="none"><fo:block id="id554859" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;15.&#xA0;Valid Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Return Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:inline font-family="monospace">fmt(f(i,j))</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>A container type, accessible using container traits</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block>Formats the result of the finder operation</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Similarly to finders, formatters generalize format operations. When a finder is used to 
            select a part of the input, formatter takes this selection and performs some formating
            on it. Algorithms can abstract from formating using a formatter.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Examples</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-block id="id554910" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id554911" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                    Formatter implemented as a class. This Formatter does not perform any formating and 
                    returns the match, repackaged. <fo:inline font-family="monospace">operator()</fo:inline>
                    is templated, so that the Formatter can be used on any Finder type.
                    
                    <fo:block id="id554925" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
struct simple_formatter
{
    template&lt;typename FindResultT&gt;
    std::string operator()( const FindResultT&amp; Match )
    {
        std::string Temp( Match.begin(), Match.end() );
        return Temp;
    }
};
                </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id554935" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
                    Function Formatter. Similarly to Finder, Formatter can be any function object. 
                    However, as a function, it can be used only with a specific Finder type. 
                  
                    <fo:block id="id554941" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
std::string simple_formatter( boost::iterator_range&lt;std::string::const_iterator&gt;&amp; Match )
{
    std::string Temp( Match.begin(), Match.end() );
    return Temp;
}
                    </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block id="string_algo.reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Reference</fo:marker><fo:block font-size="17.28pt">Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id350445"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/case_conv.hpp">boost/algorithm/string/case_conv.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines sequence case-conversion algorithms. Algorithms convert each element in the input sequence to the desired case using provided locales.</fo:block><fo:block id="id554984" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="to_lower_copy">to_lower_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="to_lower_copy">to_lower_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> MutableCollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="to_lower">to_lower</fo:basic-link>(MutableCollectionT &amp;, <fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="to_upper_copy">to_upper_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="to_upper_copy">to_upper_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> MutableCollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="to_upper">to_upper</fo:basic-link>(MutableCollectionT &amp;, <fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="to_lower_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function to_lower_copy</fo:block></fo:block><fo:block space-after="1em">Function to_lower_copy <fo:inline font-family="serif">--</fo:inline> Convert to lower case. </fo:block><fo:block>boost::algorithm::to_lower_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id555280"><fo:block/><fo:block id="id555281" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;to_lower_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;SequenceT to_lower_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id555362"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each element of the input sequence is converted to lower case. The result is a copy of the input converted to lower case. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id555373" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id555380" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input collection </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id555388" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for conversion </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id555395" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id555404" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id555408" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id555417" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="to_lower"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template to_lower</fo:block></fo:block><fo:block space-after="1em">Function template to_lower <fo:inline font-family="serif">--</fo:inline> Convert to lower case. </fo:block><fo:block>boost::algorithm::to_lower</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id555445"><fo:block/><fo:block id="id555446" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> MutableCollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> to_lower(MutableCollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id555483"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each element of the input sequence is converted to lower case. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id555492" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id555499" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A collection </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id555506" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>a locale used for conversion </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="to_upper_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function to_upper_copy</fo:block></fo:block><fo:block space-after="1em">Function to_upper_copy <fo:inline font-family="serif">--</fo:inline> Convert to upper case. </fo:block><fo:block>boost::algorithm::to_upper_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id555534"><fo:block/><fo:block id="id555535" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;to_upper_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;SequenceT to_upper_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id555616"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each element of the input sequence is converted to upper case. The result is a copy of the input converted to upper case. It is returned as a sequence or copied to the output iterator</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id555627" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id555634" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input collection </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id555642" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for conversion </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id555650" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id555658" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id555662" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id555671" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="to_upper"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template to_upper</fo:block></fo:block><fo:block space-after="1em">Function template to_upper <fo:inline font-family="serif">--</fo:inline> Convert to upper case. </fo:block><fo:block>boost::algorithm::to_upper</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id555700"><fo:block/><fo:block id="id555701" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> MutableCollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> to_upper(MutableCollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id555738"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each element of the input sequence is converted to upper case. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id555747" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id555753" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input collection </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id555762" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>a locale used for conversion </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id388523"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/classification.hpp">boost/algorithm/string/classification.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Classification predicates are included in the library to give some more convenience when using algorithms like <fo:inline font-family="monospace">trim()</fo:inline>  and <fo:inline font-family="monospace">all()</fo:inline> . They wrap functionality of STL classification functions ( e.g. <fo:inline font-family="monospace">std::isspace()</fo:inline>  ) into generic functors.</fo:block><fo:block id="id555811" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_classified">is_classified</fo:basic-link>(std::ctype_base::mask, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_space">is_space</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_alnum">is_alnum</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_alpha">is_alpha</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_cntrl">is_cntrl</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_digit">is_digit</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_graph">is_graph</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_lower">is_lower</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_print">is_print</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_punct">is_punct</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_upper">is_upper</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_xdigit">is_xdigit</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT&gt; <fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_any_of">is_any_of</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT&gt; <fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="is_from_range">is_from_range</fo:basic-link>(CharT, CharT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Pred1T, <fo:inline font-weight="bold">typename</fo:inline> Pred2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="id504418"><fo:inline font-weight="bold">operator</fo:inline>&amp;&amp;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> predicate_facade&lt; Pred1T &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> predicate_facade&lt; Pred2T &gt; &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Pred1T, <fo:inline font-weight="bold">typename</fo:inline> Pred2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="id354683"><fo:inline font-weight="bold">operator</fo:inline>||</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> predicate_facade&lt; Pred1T &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> predicate_facade&lt; Pred2T &gt; &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> PredT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="id273455"><fo:inline font-weight="bold">operator</fo:inline>!</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> predicate_facade&lt; PredT &gt; &amp;);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="is_classified"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function is_classified</fo:block></fo:block><fo:block space-after="1em">Function is_classified <fo:inline font-family="serif">--</fo:inline> is_classified predicate </fo:block><fo:block>boost::algorithm::is_classified</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556325"><fo:block/><fo:block id="id556326" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> is_classified(std::ctype_base::mask Type, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556348"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate. This predicate holds if the input is of specified <fo:inline font-family="monospace">std::ctype</fo:inline>  category.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id556370" provisional-distance-between-starts="4em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556376" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for classification </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id556384" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Type</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A <fo:inline font-family="monospace">std::ctype</fo:inline>  category </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id556399" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556402" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_space"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function is_space</fo:block></fo:block><fo:block space-after="1em">Function is_space <fo:inline font-family="serif">--</fo:inline> is_space predicate </fo:block><fo:block>boost::algorithm::is_space</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556436"><fo:block/><fo:block id="id556438" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> is_space(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556456"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate for the <fo:inline font-family="monospace">ctype_base::space</fo:inline>  category.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id556478" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556484" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id556492" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556496" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_alnum"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function is_alnum</fo:block></fo:block><fo:block space-after="1em">Function is_alnum <fo:inline font-family="serif">--</fo:inline> is_alnum predicate </fo:block><fo:block>boost::algorithm::is_alnum</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556530"><fo:block/><fo:block id="id556531" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> is_alnum(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556550"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate for the <fo:inline font-family="monospace">ctype_base::alnum</fo:inline>  category.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id556572" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556578" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id556586" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556590" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_alpha"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function is_alpha</fo:block></fo:block><fo:block space-after="1em">Function is_alpha <fo:inline font-family="serif">--</fo:inline> is_alpha predicate </fo:block><fo:block>boost::algorithm::is_alpha</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556624"><fo:block/><fo:block id="id556625" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> is_alpha(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556644"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate for the <fo:inline font-family="monospace">ctype_base::alpha</fo:inline>  category.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id556666" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556672" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id556680" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556684" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_cntrl"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function is_cntrl</fo:block></fo:block><fo:block space-after="1em">Function is_cntrl <fo:inline font-family="serif">--</fo:inline> is_cntrl predicate </fo:block><fo:block>boost::algorithm::is_cntrl</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556718"><fo:block/><fo:block id="id556719" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> is_cntrl(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556738"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate for the <fo:inline font-family="monospace">ctype_base::cntrl</fo:inline>  category.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id556759" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556766" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id556774" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556777" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_digit"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function is_digit</fo:block></fo:block><fo:block space-after="1em">Function is_digit <fo:inline font-family="serif">--</fo:inline> is_digit predicate </fo:block><fo:block>boost::algorithm::is_digit</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556812"><fo:block/><fo:block id="id556813" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> is_digit(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556832"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate for the <fo:inline font-family="monospace">ctype_base::digit</fo:inline>  category.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id556853" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556860" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id556868" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556871" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_graph"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function is_graph</fo:block></fo:block><fo:block space-after="1em">Function is_graph <fo:inline font-family="serif">--</fo:inline> is_graph predicate </fo:block><fo:block>boost::algorithm::is_graph</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556905"><fo:block/><fo:block id="id556907" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> is_graph(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556925"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate for the <fo:inline font-family="monospace">ctype_base::graph</fo:inline>  category.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id556947" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556953" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id556961" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id556965" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_lower"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function is_lower</fo:block></fo:block><fo:block space-after="1em">Function is_lower <fo:inline font-family="serif">--</fo:inline> is_lower predicate </fo:block><fo:block>boost::algorithm::is_lower</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id556999"><fo:block/><fo:block id="id557000" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> is_lower(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557019"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate for the <fo:inline font-family="monospace">ctype_base::lower</fo:inline>  category.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id557041" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557047" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id557055" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557059" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of <fo:inline font-family="monospace">is_classified</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_print"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function is_print</fo:block></fo:block><fo:block space-after="1em">Function is_print <fo:inline font-family="serif">--</fo:inline> is_print predicate </fo:block><fo:block>boost::algorithm::is_print</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557092"><fo:block/><fo:block id="id557094" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> is_print(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557112"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate for the <fo:inline font-family="monospace">ctype_base::print</fo:inline>  category.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id557134" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557140" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id557148" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557152" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_punct"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function is_punct</fo:block></fo:block><fo:block space-after="1em">Function is_punct <fo:inline font-family="serif">--</fo:inline> is_punct predicate </fo:block><fo:block>boost::algorithm::is_punct</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557186"><fo:block/><fo:block id="id557188" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> is_punct(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557206"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate for the <fo:inline font-family="monospace">ctype_base::punct</fo:inline>  category.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id557228" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557234" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id557242" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557246" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_upper"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function is_upper</fo:block></fo:block><fo:block space-after="1em">Function is_upper <fo:inline font-family="serif">--</fo:inline> is_upper predicate </fo:block><fo:block>boost::algorithm::is_upper</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557280"><fo:block/><fo:block id="id557281" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> is_upper(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557299"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate for the <fo:inline font-family="monospace">ctype_base::upper</fo:inline>  category.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id557321" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557328" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id557336" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557339" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_xdigit"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function is_xdigit</fo:block></fo:block><fo:block space-after="1em">Function is_xdigit <fo:inline font-family="serif">--</fo:inline> is_xdigit predicate </fo:block><fo:block>boost::algorithm::is_xdigit</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557374"><fo:block/><fo:block id="id557375" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> is_xdigit(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557393"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate for the <fo:inline font-family="monospace">ctype_base::xdigit</fo:inline>  category.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id557415" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557421" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id557429" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557433" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">is_classified</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_any_of"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template is_any_of</fo:block></fo:block><fo:block space-after="1em">Function template is_any_of <fo:inline font-family="serif">--</fo:inline> is_any_of predicate </fo:block><fo:block>boost::algorithm::is_any_of</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557468"><fo:block/><fo:block id="id557469" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT&gt; <fo:inline font-style="italic">unspecified</fo:inline> is_any_of(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp; Set);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557500"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_any_of</fo:inline>  predicate. The predicate holds if the input is included in the specified set of characters.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id557516" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557522" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Set</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A set of characters to be recognized </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id557531" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557534" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">is_any_of</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_from_range"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template is_from_range</fo:block></fo:block><fo:block space-after="1em">Function template is_from_range <fo:inline font-family="serif">--</fo:inline> is_from_range predicate </fo:block><fo:block>boost::algorithm::is_from_range</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557569"><fo:block/><fo:block id="id557570" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT&gt; <fo:inline font-style="italic">unspecified</fo:inline> is_from_range(CharT From, CharT To);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557594"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">is_from_range</fo:inline>  predicate. The predicate holds if the input is included in the specified range. (i.e. From &lt;= Ch &lt;= To )</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id557612" provisional-distance-between-starts="4em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557618" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>From</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The start of the range </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id557626" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>To</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The end of the range </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id557634" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557638" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">is_from_range</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id504418"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template operator&amp;&amp;</fo:block></fo:block><fo:block space-after="1em">Function template operator&amp;&amp; <fo:inline font-family="serif">--</fo:inline> predicate 'and' composition predicate </fo:block><fo:block>boost::algorithm::operator&amp;&amp;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557674"><fo:block/><fo:block id="id557675" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Pred1T, <fo:inline font-weight="bold">typename</fo:inline> Pred2T&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:inline font-weight="bold">operator</fo:inline>&amp;&amp;(<fo:inline font-weight="bold">const</fo:inline> predicate_facade&lt; Pred1T &gt; &amp; Pred1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> predicate_facade&lt; Pred2T &gt; &amp; Pred2);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557727"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">class_and</fo:inline>  predicate. This predicate can be used to logically combine two classification predicates. <fo:inline font-family="monospace">class_and</fo:inline>  holds, if both predicates return true.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id557751" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557757" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Pred1</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The first predicate </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id557765" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Pred2</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id557773" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557777" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">class_and</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id354683"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template operator||</fo:block></fo:block><fo:block space-after="1em">Function template operator|| <fo:inline font-family="serif">--</fo:inline> predicate 'or' composition predicate </fo:block><fo:block>boost::algorithm::operator||</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557811"><fo:block/><fo:block id="id557812" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Pred1T, <fo:inline font-weight="bold">typename</fo:inline> Pred2T&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:inline font-weight="bold">operator</fo:inline>||(<fo:inline font-weight="bold">const</fo:inline> predicate_facade&lt; Pred1T &gt; &amp; Pred1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> predicate_facade&lt; Pred2T &gt; &amp; Pred2);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557864"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">class_or</fo:inline>  predicate. This predicate can be used to logically combine two classification predicates. <fo:inline font-family="monospace">class_or</fo:inline>  holds, if one of the predicates return true.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id557888" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557894" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Pred1</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The first predicate </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id557902" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Pred2</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id557910" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id557914" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">class_or</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id273455"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template operator!</fo:block></fo:block><fo:block space-after="1em">Function template operator! <fo:inline font-family="serif">--</fo:inline> predicate negation operator </fo:block><fo:block>boost::algorithm::operator!</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557948"><fo:block/><fo:block id="id557949" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> PredT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:inline font-weight="bold">operator</fo:inline>!(<fo:inline font-weight="bold">const</fo:inline> predicate_facade&lt; PredT &gt; &amp; Pred);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id557986"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">class_not</fo:inline>  predicate. This predicate represents a negation. <fo:inline font-family="monospace">class_or</fo:inline>  holds if of the predicates return false.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id558008" provisional-distance-between-starts="4em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id558015" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Pred</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The predicate to be negated </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id558023" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id558027" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">class_not</fo:inline>  predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id407166"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/collection_traits.hpp">boost/algorithm/string/collection_traits.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines collection_traits class and related free-standing functions. This facility is used to unify the access to different types of collections. It allows the algorithms in the library to work with STL collections, c-style array, null-terminated c-strings (and more) using the same interface.</fo:block><fo:block id="id558065" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="value_type_of">value_type_of</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="difference_type_of">difference_type_of</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="iterator_of">iterator_of</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="const_iterator_of">const_iterator_of</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::size_type <fo:basic-link internal-destination="size">size</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> C &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="empty">empty</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> C &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::iterator <fo:basic-link internal-destination="begin">begin</fo:basic-link>(C &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::const_iterator <fo:basic-link internal-destination="begin">begin</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> C &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::iterator <fo:basic-link internal-destination="end">end</fo:basic-link>(C &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::const_iterator <fo:basic-link internal-destination="end">end</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> C &amp;);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="collection_traits"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Struct template collection_traits</fo:block></fo:block><fo:block space-after="1em">Struct template collection_traits <fo:inline font-family="serif">--</fo:inline> collection_traits class </fo:block><fo:block>boost::algorithm::collection_traits</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id558493"><fo:block/><fo:block id="id558494" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; 
<fo:inline font-weight="bold">struct</fo:inline> collection_traits {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> container_helper_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; function_type;&#xA0;&#xA0;  <fo:inline font-style="italic">// Function type. </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> container_helper_type::value_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; value_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// Value type. </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> container_helper_type::size_type&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; size_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// Size type. </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> container_helper_type::iterator&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; iterator;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// Iterator type. </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> container_helper_type::const_iterator&#xA0; const_iterator;&#xA0;  <fo:inline font-style="italic">// Const iterator type. </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> container_helper_type::result_iterator result_iterator;  <fo:inline font-style="italic">// Result iterator type ( iterator of const_iterator, depending on the constness of the container ). </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> container_helper_type::difference_type difference_type;  <fo:inline font-style="italic">// Difference type. </fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id558609"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Collection traits provide uniform access to different types of collections. This functionality allows to write generic algorithms which work with several different kinds of collections.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Currently following collection types are supported:<fo:list-block id="id558622" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id558623" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>containers with STL compatible container interface ( see ContainerConcept ) ( i.e. <fo:inline font-family="monospace">std::vector&lt;&gt;</fo:inline> , <fo:inline font-family="monospace">std::list&lt;&gt;</fo:inline> , <fo:inline font-family="monospace">std::string&lt;&gt;</fo:inline>  ... )</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id558648" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>c-style array ( <fo:inline font-family="monospace">char</fo:inline> [10], <fo:inline font-family="monospace">int</fo:inline> [15] ... )</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id558665" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>null-terminated c-strings ( <fo:inline font-family="monospace">char*</fo:inline> , <fo:inline font-family="monospace">wchar_T*</fo:inline>  )</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id558683" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>std::pair of iterators ( i.e <fo:inline font-family="monospace">std::pair&lt;vector&lt;int&gt;::iterator</fo:inline> ,vector&lt;int&gt;::iterator&gt; )</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Collection traits provide an external collection interface operations. All are accessible using free-standing functions.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following operations are supported:<fo:list-block id="id558703" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id558704" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">size()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id558712" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">empty()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id558719" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">begin()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id558727" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">end()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Container traits have somewhat limited functionality on compilers not supporting partial template specialization and partial template ordering. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="value_type_of"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Struct template value_type_of</fo:block></fo:block><fo:block space-after="1em">Struct template value_type_of <fo:inline font-family="serif">--</fo:inline> Container value_type trait. </fo:block><fo:block>boost::algorithm::value_type_of</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id558759"><fo:block/><fo:block id="id558761" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; 
<fo:inline font-weight="bold">struct</fo:inline> value_type_of {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::value_type type;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id558804"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Extract the type of elements contained in a container </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="difference_type_of"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Struct template difference_type_of</fo:block></fo:block><fo:block space-after="1em">Struct template difference_type_of <fo:inline font-family="serif">--</fo:inline> Container difference trait. </fo:block><fo:block>boost::algorithm::difference_type_of</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id558832"><fo:block/><fo:block id="id558833" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; 
<fo:inline font-weight="bold">struct</fo:inline> difference_type_of {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::difference_type type;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id558877"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Extract the container's difference type </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="iterator_of"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Struct template iterator_of</fo:block></fo:block><fo:block space-after="1em">Struct template iterator_of <fo:inline font-family="serif">--</fo:inline> Container iterator trait. </fo:block><fo:block>boost::algorithm::iterator_of</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id558904"><fo:block/><fo:block id="id558905" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; 
<fo:inline font-weight="bold">struct</fo:inline> iterator_of {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::iterator type;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id558949"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Extract the container's iterator type </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="const_iterator_of"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Struct template const_iterator_of</fo:block></fo:block><fo:block space-after="1em">Struct template const_iterator_of <fo:inline font-family="serif">--</fo:inline> Container const_iterator trait. </fo:block><fo:block>boost::algorithm::const_iterator_of</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id558977"><fo:block/><fo:block id="id558978" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; 
<fo:inline font-weight="bold">struct</fo:inline> const_iterator_of {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::const_iterator type;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559022"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Extract the container's const_iterator type </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="result_iterator_of"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Struct template result_iterator_of</fo:block></fo:block><fo:block space-after="1em">Struct template result_iterator_of <fo:inline font-family="serif">--</fo:inline> Container result_iterator. </fo:block><fo:block>boost::algorithm::result_iterator_of</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559049"><fo:block/><fo:block id="id559050" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; 
<fo:inline font-weight="bold">struct</fo:inline> result_iterator_of {
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::result_iterator type;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559094"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Extract the container's result_iterator type. This type maps to <fo:inline font-family="monospace">C::iterator</fo:inline>  for mutable container and <fo:inline font-family="monospace">C::const_iterator</fo:inline>  for const containers. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="size"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template size</fo:block></fo:block><fo:block space-after="1em">Function template size <fo:inline font-family="serif">--</fo:inline> Free-standing size() function. </fo:block><fo:block>boost::algorithm::size</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559136"><fo:block/><fo:block id="id559137" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::size_type size(<fo:inline font-weight="bold">const</fo:inline> C &amp; c);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559174"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Get the size of the container. Uses collection_traits. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="empty"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template empty</fo:block></fo:block><fo:block space-after="1em">Function template empty <fo:inline font-family="serif">--</fo:inline> Free-standing empty() function. </fo:block><fo:block>boost::algorithm::empty</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559200"><fo:block/><fo:block id="id559202" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:inline font-weight="bold">bool</fo:inline> empty(<fo:inline font-weight="bold">const</fo:inline> C &amp; c);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559234"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Check whether the container is empty. Uses container traits. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="begin"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function begin</fo:block></fo:block><fo:block space-after="1em">Function begin <fo:inline font-family="serif">--</fo:inline> Free-standing begin() function. </fo:block><fo:block>boost::algorithm::begin</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559261"><fo:block/><fo:block id="id559262" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::iterator begin(C &amp; c);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::const_iterator begin(<fo:inline font-weight="bold">const</fo:inline> C &amp; c);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559324"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Get the begin iterator of the container. Uses collection_traits. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="end"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function end</fo:block></fo:block><fo:block space-after="1em">Function end <fo:inline font-family="serif">--</fo:inline> Free-standing end() function. </fo:block><fo:block>boost::algorithm::end</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559350"><fo:block/><fo:block id="id559352" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::iterator end(C &amp; c);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> C&gt; <fo:basic-link internal-destination="collection_traits">collection_traits</fo:basic-link>&lt; C &gt;::const_iterator end(<fo:inline font-weight="bold">const</fo:inline> C &amp; c);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559414"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Get the begin iterator of the container. Uses collection_traits. </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id266856"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/compare.hpp">boost/algorithm/string/compare.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines element comparison predicates. Many algorithms in this library can take an additional argument with a predicate used to compare elements. This makes it possible, for instance, to have case insensitive versions of the algorithms.</fo:block><fo:block id="id559445" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="is_equal">is_equal</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="is_iequal">is_iequal</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="is_equal"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Struct is_equal</fo:block></fo:block><fo:block space-after="1em">Struct is_equal <fo:inline font-family="serif">--</fo:inline> is_equal functor </fo:block><fo:block>boost::algorithm::is_equal</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559512"><fo:block/><fo:block id="id559513" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> is_equal {

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id222448-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id222452-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> T1 &amp;, <fo:inline font-weight="bold">const</fo:inline> T2 &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559599"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Standard STL equal_to only handle comparison between arguments of the same type. This is a less restrictive version which wraps operator ==. </fo:block><fo:block id="id559608"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">is_equal public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id222448-bb"/><fo:inline font-family="monospace">is_equal</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id559622" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id559628" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id559631" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id222452-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(<fo:inline font-weight="bold">const</fo:inline> T1 &amp; Arg1, <fo:inline font-weight="bold">const</fo:inline> T2 &amp; Arg2) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Compare two operands for equality </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_iequal"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Struct is_iequal</fo:block></fo:block><fo:block space-after="1em">Struct is_iequal <fo:inline font-family="serif">--</fo:inline> case insensitive version of is_equal </fo:block><fo:block>boost::algorithm::is_iequal</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559720"><fo:block/><fo:block id="id559721" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> is_iequal {
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="is_iequalconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id492201-bb">is_iequal</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id304317-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id319828-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> T1 &amp;, <fo:inline font-weight="bold">const</fo:inline> T2 &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id559838"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Case insensitive comparison predicate. Comparison is done using specified locales. </fo:block><fo:block id="id559846"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">is_iequal construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="is_iequalconstruct-copy-destruct"/><fo:inline font-family="monospace">is_iequal</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id559862" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id559868" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id559871" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id492201-bb"/>is_iequal(<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id559893" provisional-distance-between-starts="3em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id559900" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>locales used for comparison </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id559908"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">is_iequal public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id304317-bb"/><fo:inline font-family="monospace">is_iequal</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id559923" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id559929" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id559931" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id319828-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(<fo:inline font-weight="bold">const</fo:inline> T1 &amp; Arg1, <fo:inline font-weight="bold">const</fo:inline> T2 &amp; Arg2) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Compare two operands. Case is ignored. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id336627"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/concept.hpp">boost/algorithm/string/concept.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines concepts used in string_algo library</fo:block><fo:block id="id560020" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; <fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="FinderConcept">FinderConcept</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> FormatterT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; 
  &#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="FormatterConcept">FormatterConcept</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="FinderConcept"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Struct template FinderConcept</fo:block></fo:block><fo:block space-after="1em">Struct template FinderConcept <fo:inline font-family="serif">--</fo:inline> Finder concept. </fo:block><fo:block>boost::algorithm::FinderConcept</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id560138"><fo:block/><fo:block id="id560139" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; 
<fo:inline font-weight="bold">struct</fo:inline> FinderConcept {

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id432848-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id505368-bb">constraints</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id560200"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines the Finder concept. Finder is a functor which selects an arbitrary part of a string. Search is performed on the range specified by starting and ending iterators.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Result of the find operation must be convertible to iterator_range. </fo:block><fo:block id="id560213"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">FinderConcept public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id432848-bb"/><fo:inline font-family="monospace">FinderConcept</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id560228" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id560234" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id560236" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id505368-bb"/>constraints() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="FormatterConcept"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Struct template FormatterConcept</fo:block></fo:block><fo:block space-after="1em">Struct template FormatterConcept <fo:inline font-family="serif">--</fo:inline> Formatter concept. </fo:block><fo:block>boost::algorithm::FormatterConcept</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id560277"><fo:block/><fo:block id="id560278" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> FormatterT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; 
<fo:inline font-weight="bold">struct</fo:inline> FormatterConcept {

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id459750-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id369690-bb">constraints</fo:basic-link>() ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id560345"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines the Formatter concept. Formatter is a functor, which takes a result from a finder operation and transforms it in a specific way.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Result must be a container supported by container_traits, or a reference to it. </fo:block><fo:block id="id560358"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">FormatterConcept public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id459750-bb"/><fo:inline font-family="monospace">FormatterConcept</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id560373" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id560379" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id560382" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id369690-bb"/>constraints() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id228929"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/constants.hpp">boost/algorithm/string/constants.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id560419" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:basic-link internal-destination="id502269">token_compress_mode_type</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="id502269"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Type token_compress_mode_type</fo:block></fo:block><fo:block space-after="1em">Type token_compress_mode_type <fo:inline font-family="serif">--</fo:inline> Token compression mode. </fo:block><fo:block>boost::algorithm::token_compress_mode_type</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id560473"><fo:block/><fo:block id="id560474" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">enum</fo:inline> token_compress_mode_type { token_compress_on, token_compress_off };</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id236631"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/erase.hpp">boost/algorithm/string/erase.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines various erase algorithms. Each algorithm removes part(s) of the input according to a searching criteria.</fo:block><fo:block id="id560507" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="erase_range_copy">erase_range_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="const_iterator_of">const_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="erase_range_copy">erase_range_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="const_iterator_of">const_iterator_of</fo:basic-link>&lt; SequenceT &gt;::type &gt; &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="erase_range">erase_range</fo:basic-link>(SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="iterator_of">iterator_of</fo:basic-link>&lt; SequenceT &gt;::type &gt; &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="erase_first_copy">erase_first_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="erase_first_copy">erase_first_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="erase_first">erase_first</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ierase_first_copy">ierase_first_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="ierase_first_copy">ierase_first_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="ierase_first">ierase_first</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="erase_last_copy">erase_last_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="erase_last_copy">erase_last_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="erase_last">erase_last</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ierase_last_copy">ierase_last_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="ierase_last_copy">ierase_last_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="ierase_last">ierase_last</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="erase_nth_copy">erase_nth_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="erase_nth_copy">erase_nth_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="erase_nth">erase_nth</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ierase_nth_copy">ierase_nth_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="ierase_nth_copy">ierase_nth_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="ierase_nth">ierase_nth</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="erase_all_copy">erase_all_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="erase_all_copy">erase_all_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="erase_all">erase_all</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ierase_all_copy">ierase_all_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="ierase_all_copy">ierase_all_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="ierase_all">ierase_all</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="erase_head_copy">erase_head_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="erase_head_copy">erase_head_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="erase_head">erase_head</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="erase_tail_copy">erase_tail_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="erase_tail_copy">erase_tail_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="erase_tail">erase_tail</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="erase_range_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function erase_range_copy</fo:block></fo:block><fo:block space-after="1em">Function erase_range_copy <fo:inline font-family="serif">--</fo:inline> Erase range algorithm. </fo:block><fo:block>boost::algorithm::erase_range_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id562389"><fo:block/><fo:block id="id562390" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;erase_range_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="const_iterator_of">const_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; &amp; SearchRange);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;SequenceT erase_range_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="const_iterator_of">const_iterator_of</fo:basic-link>&lt; SequenceT &gt;::type &gt; &amp; SearchRange);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id562517"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the given range from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id562527" provisional-distance-between-starts="11em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id562534" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id562542" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id562550" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>SearchRange</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A range in the input to be removed </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id562559" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id562562" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id562572" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_range"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template erase_range</fo:block></fo:block><fo:block space-after="1em">Function template erase_range <fo:inline font-family="serif">--</fo:inline> Erase range algorithm. </fo:block><fo:block>boost::algorithm::erase_range</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id562600"><fo:block/><fo:block id="id562601" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> erase_range(SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="iterator_of">iterator_of</fo:basic-link>&lt; SequenceT &gt;::type &gt; &amp; SearchRange);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id562659"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the given range from the input. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id562668" provisional-distance-between-starts="11em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id562674" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id562682" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>SearchRange</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A range in the input to be removed </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_first_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function erase_first_copy</fo:block></fo:block><fo:block space-after="1em">Function erase_first_copy <fo:inline font-family="serif">--</fo:inline> Erase first algorithm. </fo:block><fo:block>boost::algorithm::erase_first_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id562710"><fo:block/><fo:block id="id562711" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;erase_first_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;SequenceT erase_first_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id562805"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the first occurence of the substring from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id562815" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id562822" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id562830" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id562838" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id562846" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id562850" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id562859" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_first"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template erase_first</fo:block></fo:block><fo:block space-after="1em">Function template erase_first <fo:inline font-family="serif">--</fo:inline> Erase first algorithm. </fo:block><fo:block>boost::algorithm::erase_first</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id562888"><fo:block/><fo:block id="id562890" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> erase_first(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id562930"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the first occurence of the substring from the input. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id562940" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id562946" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id562954" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ierase_first_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function ierase_first_copy</fo:block></fo:block><fo:block space-after="1em">Function ierase_first_copy <fo:inline font-family="serif">--</fo:inline> Erase first algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ierase_first_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id562983"><fo:block/><fo:block id="id562984" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;ierase_first_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;SequenceT ierase_first_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id563096"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the first occurence of the substring from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id563107" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id563113" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563121" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563129" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563138" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id563146" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id563150" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563159" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ierase_first"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template ierase_first</fo:block></fo:block><fo:block space-after="1em">Function template ierase_first <fo:inline font-family="serif">--</fo:inline> Erase first algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ierase_first</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id563188"><fo:block/><fo:block id="id563190" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> ierase_first(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id563240"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the first occurence of the substring from the input. The input sequence is modified in-place. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id563250" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id563256" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563264" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563272" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_last_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function erase_last_copy</fo:block></fo:block><fo:block space-after="1em">Function erase_last_copy <fo:inline font-family="serif">--</fo:inline> Erase last algorithm. </fo:block><fo:block>boost::algorithm::erase_last_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id563301"><fo:block/><fo:block id="id563302" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;erase_last_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;SequenceT erase_last_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id563395"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the last occurence of the substring from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id563406" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id563412" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563420" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563429" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id563437" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id563440" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563450" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_last"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template erase_last</fo:block></fo:block><fo:block space-after="1em">Function template erase_last <fo:inline font-family="serif">--</fo:inline> Erase last algorithm. </fo:block><fo:block>boost::algorithm::erase_last</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id563479"><fo:block/><fo:block id="id563480" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> erase_last(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id563520"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the last occurence of the substring from the input. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id563530" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id563536" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563544" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ierase_last_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function ierase_last_copy</fo:block></fo:block><fo:block space-after="1em">Function ierase_last_copy <fo:inline font-family="serif">--</fo:inline> Erase last algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ierase_last_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id563573"><fo:block/><fo:block id="id563574" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;ierase_last_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;SequenceT ierase_last_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id563686"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the last occurence of the substring from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id563698" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id563704" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563712" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563720" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563729" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id563737" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id563740" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563750" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ierase_last"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template ierase_last</fo:block></fo:block><fo:block space-after="1em">Function template ierase_last <fo:inline font-family="serif">--</fo:inline> Erase last algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ierase_last</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id563779"><fo:block/><fo:block id="id563780" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> ierase_last(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id563830"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the last occurence of the substring from the input. The input sequence is modified in-place. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id563840" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id563846" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563854" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id563862" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_nth_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function erase_nth_copy</fo:block></fo:block><fo:block space-after="1em">Function erase_nth_copy <fo:inline font-family="serif">--</fo:inline> Erase nth algorithm. </fo:block><fo:block>boost::algorithm::erase_nth_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id563890"><fo:block/><fo:block id="id563891" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;erase_nth_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;SequenceT erase_nth_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id564010"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the Nth occurence of the substring in the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id564020" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id564027" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564035" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Nth</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An index of the match to be replaced. The index is 0-based. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564044" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564052" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id564060" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id564064" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564073" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_nth"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template erase_nth</fo:block></fo:block><fo:block space-after="1em">Function template erase_nth <fo:inline font-family="serif">--</fo:inline> Erase nth algorithm. </fo:block><fo:block>boost::algorithm::erase_nth</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id564102"><fo:block/><fo:block id="id564103" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> erase_nth(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id564157"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the Nth occurence of the substring in the input. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id564166" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id564172" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564180" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Nth</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An index of the match to be replaced. The index is 0-based. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564189" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ierase_nth_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function ierase_nth_copy</fo:block></fo:block><fo:block space-after="1em">Function ierase_nth_copy <fo:inline font-family="serif">--</fo:inline> Erase nth algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ierase_nth_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id564218"><fo:block/><fo:block id="id564219" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;ierase_nth_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;SequenceT ierase_nth_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id564356"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the Nth occurence of the substring in the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id564367" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id564373" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564381" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564389" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Nth</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An index of the match to be replaced. The index is 0-based. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564398" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564406" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id564415" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id564418" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564428" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ierase_nth"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template ierase_nth</fo:block></fo:block><fo:block space-after="1em">Function template ierase_nth <fo:inline font-family="serif">--</fo:inline> Erase nth algorithm. </fo:block><fo:block>boost::algorithm::ierase_nth</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id564456"><fo:block/><fo:block id="id564457" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> ierase_nth(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth, <fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id564519"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the Nth occurence of the substring in the input. The input sequence is modified in-place. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id564529" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id564535" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564543" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564551" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Nth</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An index of the match to be replaced. The index is 0-based. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564560" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_all_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function erase_all_copy</fo:block></fo:block><fo:block space-after="1em">Function erase_all_copy <fo:inline font-family="serif">--</fo:inline> Erase all algorithm. </fo:block><fo:block>boost::algorithm::erase_all_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id564588"><fo:block/><fo:block id="id564589" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;erase_all_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;SequenceT erase_all_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id564682"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all the occurrences of the string from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id564693" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id564699" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564707" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564716" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id564724" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id564728" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564737" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_all"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template erase_all</fo:block></fo:block><fo:block space-after="1em">Function template erase_all <fo:inline font-family="serif">--</fo:inline> Erase all algorithm. </fo:block><fo:block>boost::algorithm::erase_all</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id564766"><fo:block/><fo:block id="id564767" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> erase_all(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id564807"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all the occurrences of the string from the input. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id564817" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id564823" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564831" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ierase_all_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function ierase_all_copy</fo:block></fo:block><fo:block space-after="1em">Function ierase_all_copy <fo:inline font-family="serif">--</fo:inline> Erase all algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ierase_all_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id564860"><fo:block/><fo:block id="id564861" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;ierase_all_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;SequenceT ierase_all_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id564973"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all the occurrences of the string from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id564984" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id564991" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id564999" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id565007" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id565015" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id565023" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id565027" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id565036" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ierase_all"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template ierase_all</fo:block></fo:block><fo:block space-after="1em">Function template ierase_all <fo:inline font-family="serif">--</fo:inline> Erase all algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ierase_all</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id565066"><fo:block/><fo:block id="id565067" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> ierase_all(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id565116"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all the occurrences of the string from the input. The input sequence is modified in-place. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id565126" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id565132" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id565140" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id565148" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_head_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function erase_head_copy</fo:block></fo:block><fo:block space-after="1em">Function erase_head_copy <fo:inline font-family="serif">--</fo:inline> Erase head algorithm. </fo:block><fo:block>boost::algorithm::erase_head_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id565177"><fo:block/><fo:block id="id565178" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;erase_head_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;SequenceT erase_head_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id565267"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the head from the input. The head is a prefix of a seqence of given size. If the sequence is shorter then required, the whole string is considered to be the head. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id565279" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id565286" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id565294" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>N</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Length of the head </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id565301" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id565310" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id565314" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id565323" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_head"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template erase_head</fo:block></fo:block><fo:block space-after="1em">Function template erase_head <fo:inline font-family="serif">--</fo:inline> Erase head algorithm. </fo:block><fo:block>boost::algorithm::erase_head</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id565351"><fo:block/><fo:block id="id565352" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> erase_head(SequenceT &amp; Input, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id565392"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the head from the input. The head is a prefix of a seqence of given size. If the sequence is shorter then required, the whole string is considered to be the head. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id565403" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id565409" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id565417" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>N</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Length of the head </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_tail_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function erase_tail_copy</fo:block></fo:block><fo:block space-after="1em">Function erase_tail_copy <fo:inline font-family="serif">--</fo:inline> Erase tail algorithm. </fo:block><fo:block>boost::algorithm::erase_tail_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id565445"><fo:block/><fo:block id="id565446" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;erase_tail_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;SequenceT erase_tail_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id565535"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the tail from the input. The tail is a suffix of a seqence of given size. If the sequence is shorter then required, the whole string is considered to be the tail. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id565548" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id565554" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id565562" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>N</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Length of the head </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id565570" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id565578" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id565582" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id565591" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_tail"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template erase_tail</fo:block></fo:block><fo:block space-after="1em">Function template erase_tail <fo:inline font-family="serif">--</fo:inline> Erase tail algorithm. </fo:block><fo:block>boost::algorithm::erase_tail</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id565620"><fo:block/><fo:block id="id565621" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> erase_tail(SequenceT &amp; Input, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id565661"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove the tail from the input. The tail is a suffix of a seqence of given size. If the sequence is shorter then required, the whole string is considered to be the tail. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id565672" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id565678" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id565686" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>N</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Length of the head </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id448104"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/find.hpp">boost/algorithm/string/find.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines a set of find algorithms. The algorithms are searching for a substring of the input. The result is given as an <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the substring.</fo:block><fo:block id="id565722" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> FinderT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="find">find</fo:basic-link>(CollectionT &amp;, FinderT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="find_first">find_first</fo:basic-link>(Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ifind_first">ifind_first</fo:basic-link>(Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="find_last">find_last</fo:basic-link>(Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ifind_last">ifind_last</fo:basic-link>(Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="find_nth">find_nth</fo:basic-link>(Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ifind_nth">ifind_nth</fo:basic-link>(Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="find_head">find_head</fo:basic-link>(CollectionT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="find_tail">find_tail</fo:basic-link>(CollectionT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="find_token">find_token</fo:basic-link>(CollectionT &amp;, PredicateT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;token_compress_mode_type = token_compress_off);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="find"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template find</fo:block></fo:block><fo:block space-after="1em">Function template find <fo:inline font-family="serif">--</fo:inline> Generic find algorithm. </fo:block><fo:block>boost::algorithm::find</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id566424"><fo:block/><fo:block id="id566425" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> FinderT&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;find(CollectionT &amp; Input, FinderT Finder);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id566477"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Search the input using the given finder.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id566485" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id566492" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Finder</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Finder object used for searching. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id566500" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A string which will be searched. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id566508" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id566512" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match. Returned iterator is either <fo:inline font-family="monospace">CollectionT::iterator</fo:inline>  or <fo:inline font-family="monospace">CollectionT::const_iterator</fo:inline> , depending on the constness of the input parameter. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="find_first"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template find_first</fo:block></fo:block><fo:block space-after="1em">Function template find_first <fo:inline font-family="serif">--</fo:inline> Find first algorithm. </fo:block><fo:block>boost::algorithm::find_first</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id566560"><fo:block/><fo:block id="id566562" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; 
&#xA0;&#xA0;find_first(Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id566621"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Search for the first occurence of the substring in the input.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id566630" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id566636" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A string which will be searched. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id566644" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id566653" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id566656" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match. Returned iterator is either <fo:inline font-family="monospace">CollectionT::iterator</fo:inline>  or <fo:inline font-family="monospace">CollectionT::const_iterator</fo:inline> , depending on the constness of the input parameter.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id566686" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ifind_first"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template ifind_first</fo:block></fo:block><fo:block space-after="1em">Function template ifind_first <fo:inline font-family="serif">--</fo:inline> Find first algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ifind_first</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id566715"><fo:block/><fo:block id="id566716" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; 
&#xA0;&#xA0;ifind_first(Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id566784"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Search for the first occurence of the substring in the input. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id566793" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id566800" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A string which will be searched. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id566808" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id566816" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id566824" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id566828" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match. Returned iterator is either <fo:inline font-family="monospace">Collection1T::iterator</fo:inline>  or <fo:inline font-family="monospace">Collection1T::const_iterator</fo:inline> , depending on the constness of the input parameter.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id566857" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="find_last"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template find_last</fo:block></fo:block><fo:block space-after="1em">Function template find_last <fo:inline font-family="serif">--</fo:inline> Find last algorithm. </fo:block><fo:block>boost::algorithm::find_last</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id566886"><fo:block/><fo:block id="id566887" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; 
&#xA0;&#xA0;find_last(Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id566946"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Search for the last occurence of the substring in the input.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id566955" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id566961" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A string which will be searched. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id566970" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id566978" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id566982" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match. Returned iterator is either <fo:inline font-family="monospace">Collection1T::iterator</fo:inline>  or <fo:inline font-family="monospace">Collection1T::const_iterator</fo:inline> , depending on the constness of the input parameter.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567011" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ifind_last"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template ifind_last</fo:block></fo:block><fo:block space-after="1em">Function template ifind_last <fo:inline font-family="serif">--</fo:inline> Find last algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ifind_last</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id567040"><fo:block/><fo:block id="id567041" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; 
&#xA0;&#xA0;ifind_last(Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id567109"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Search for the last match a string in the input. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id567118" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id567125" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A string which will be searched. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567133" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567141" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id567149" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id567153" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match. Returned iterator is either <fo:inline font-family="monospace">Collection1T::iterator</fo:inline>  or <fo:inline font-family="monospace">Collection1T::const_iterator</fo:inline> , depending on the constness of the input parameter.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567182" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="find_nth"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template find_nth</fo:block></fo:block><fo:block space-after="1em">Function template find_nth <fo:inline font-family="serif">--</fo:inline> Find n-th algorithm. </fo:block><fo:block>boost::algorithm::find_nth</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id567211"><fo:block/><fo:block id="id567212" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; 
&#xA0;&#xA0;find_nth(Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id567284"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Search for the n-th (zero-indexed) occurence of the substring in the input.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id567294" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id567300" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A string which will be searched. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567308" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Nth</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An index (zero-indexed) of the match to be found. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567316" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id567325" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id567328" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match. Returned iterator is either <fo:inline font-family="monospace">Collection1T::iterator</fo:inline>  or <fo:inline font-family="monospace">Collection1T::const_iterator</fo:inline> , depending on the constness of the input parameter. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ifind_nth"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template ifind_nth</fo:block></fo:block><fo:block space-after="1em">Function template ifind_nth <fo:inline font-family="serif">--</fo:inline> Find n-th algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ifind_nth</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id567378"><fo:block/><fo:block id="id567379" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; 
&#xA0;&#xA0;ifind_nth(Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth, <fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id567459"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Search for the n-th (zero-indexed) occurence of the substring in the input. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id567469" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id567475" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A string which will be searched. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567484" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567492" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Nth</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An index (zero-indexed) of the match to be found. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567500" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id567508" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id567512" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match. Returned iterator is either <fo:inline font-family="monospace">Collection1T::iterator</fo:inline>  or <fo:inline font-family="monospace">Collection1T::const_iterator</fo:inline> , depending on the constness of the input parameter.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567541" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="find_head"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template find_head</fo:block></fo:block><fo:block space-after="1em">Function template find_head <fo:inline font-family="serif">--</fo:inline> Find head algorithm. </fo:block><fo:block>boost::algorithm::find_head</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id567569"><fo:block/><fo:block id="id567571" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;find_head(CollectionT &amp; Input, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id567629"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Get the head of the input. Head is a prefix of the string of the given size. If the input is shorter then required, whole input if considered to be the head.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id567639" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id567645" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567653" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>N</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Length of the head </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id567661" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id567665" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match. Returned iterator is either <fo:inline font-family="monospace">Collection1T::iterator</fo:inline>  or <fo:inline font-family="monospace">Collection1T::const_iterator</fo:inline> , depending on the constness of the input parameter.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567694" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="find_tail"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template find_tail</fo:block></fo:block><fo:block space-after="1em">Function template find_tail <fo:inline font-family="serif">--</fo:inline> Find tail algorithm. </fo:block><fo:block>boost::algorithm::find_tail</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id567723"><fo:block/><fo:block id="id567724" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;find_tail(CollectionT &amp; Input, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id567782"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Get the head of the input. Head is a suffix of the string of the given size. If the input is shorter then required, whole input if considered to be the tail.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id567792" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id567799" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567807" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>N</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Length of the tail </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id567814" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id567818" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match. Returned iterator is either <fo:inline font-family="monospace">CollectionT::iterator</fo:inline>  or <fo:inline font-family="monospace">CollectionT::const_iterator</fo:inline> , depending on the constness of the input parameter.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567848" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="find_token"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template find_token</fo:block></fo:block><fo:block space-after="1em">Function template find_token <fo:inline font-family="serif">--</fo:inline> Find token algorithm. </fo:block><fo:block>boost::algorithm::find_token</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id567876"><fo:block/><fo:block id="id567877" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;find_token(CollectionT &amp; Input, PredicateT Pred, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;token_compress_mode_type eCompress = token_compress_off);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id567935"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Look for a given token in the string. Token is a character that matches the given predicate. If the "token compress mode" is enabled, adjacent tokens are considered to be one match.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id567946" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id567952" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A input string. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567960" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Pred</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An unary predicate to identify a token </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id567968" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>eCompress</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Enable/Disable compressing of adjacent tokens </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id567977" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id567980" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match. Returned iterator is either <fo:inline font-family="monospace">CollectionT::iterator</fo:inline>  or <fo:inline font-family="monospace">CollectionT::const_iterator</fo:inline> , depending on the constness of the input parameter.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id568010" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id333397"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/find_format.hpp">boost/algorithm/string/find_format.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines generic replace algorithms. Each algorithm replaces part(s) of the input. The part to be replaced is looked up using a Finder object. Result of finding is then used by a Formatter object to generate the replacement.</fo:block><fo:block id="id568041" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatterT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="find_format_copy">find_format_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, FinderT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;FormatterT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> FormatterT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="find_format_copy">find_format_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, FinderT, FormatterT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> FormatterT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="find_format">find_format</fo:basic-link>(SequenceT &amp;, FinderT, FormatterT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatterT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="find_format_all_copy">find_format_all_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, FinderT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;FormatterT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> FormatterT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="find_format_all_copy">find_format_all_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, FinderT, FormatterT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> FormatterT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="find_format_all">find_format_all</fo:basic-link>(SequenceT &amp;, FinderT, FormatterT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="id363826">regex_finder</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> TraitsT, <fo:inline font-weight="bold">typename</fo:inline> AllocT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="id308968">regex_formatter</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, TraitsT, AllocT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = format_default);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="find_format_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function find_format_copy</fo:block></fo:block><fo:block space-after="1em">Function find_format_copy <fo:inline font-family="serif">--</fo:inline> Generic replace algorithm. </fo:block><fo:block>boost::algorithm::find_format_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id568486"><fo:block/><fo:block id="id568487" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatterT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;find_format_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;FinderT Finder, FormatterT Formatter);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> FormatterT&gt; 
&#xA0;&#xA0;SequenceT find_format_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, FinderT Finder, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;FormatterT Formatter);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id568584"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use the Finder to search for a substring. Use the Formatter to format this substring and replace it in the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id568596" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id568602" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Finder</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A Finder object used to search for a match to be replaced </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id568611" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Formatter</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A Formatter object used to format a match </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id568620" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id568628" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id568636" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id568640" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id568649" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="find_format"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template find_format</fo:block></fo:block><fo:block space-after="1em">Function template find_format <fo:inline font-family="serif">--</fo:inline> Generic replace algorithm. </fo:block><fo:block>boost::algorithm::find_format</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id568678"><fo:block/><fo:block id="id568679" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> FormatterT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> find_format(SequenceT &amp; Input, FinderT Finder, FormatterT Formatter);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id568722"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use the Finder to search for a substring. Use the Formatter to format this substring and replace it in the input. The input is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id568732" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id568739" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Finder</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A Finder object used to search for a match to be replaced </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id568747" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Formatter</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A Formatter object used to format a match </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id568756" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="find_format_all_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function find_format_all_copy</fo:block></fo:block><fo:block space-after="1em">Function find_format_all_copy <fo:inline font-family="serif">--</fo:inline> Generic replace all algorithm. </fo:block><fo:block>boost::algorithm::find_format_all_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id568784"><fo:block/><fo:block id="id568786" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatterT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;find_format_all_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;FinderT Finder, FormatterT Formatter);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> FormatterT&gt; 
&#xA0;&#xA0;SequenceT find_format_all_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, FinderT Finder, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;FormatterT Formatter);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id568882"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use the Finder to search for a substring. Use the Formatter to format this substring and replace it in the input. Repeat this for all matching substrings. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id568894" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id568900" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Finder</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A Finder object used to search for a match to be replaced </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id568909" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Formatter</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A Formatter object used to format a match </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id568917" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id568925" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id568934" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id568937" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id568947" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="find_format_all"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template find_format_all</fo:block></fo:block><fo:block space-after="1em">Function template find_format_all <fo:inline font-family="serif">--</fo:inline> Generic replace all algorithm. </fo:block><fo:block>boost::algorithm::find_format_all</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id568976"><fo:block/><fo:block id="id568977" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> FormatterT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> find_format_all(SequenceT &amp; Input, FinderT Finder, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;FormatterT Formatter);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id569022"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use the Finder to search for a substring. Use the Formatter to format this substring and replace it in the input. Repeat this for all matching substrings.The input is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id569032" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id569039" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Finder</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A Finder object used to search for a match to be replaced </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id569048" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Formatter</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A Formatter object used to format a match </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id569056" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id363826"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template regex_finder</fo:block></fo:block><fo:block space-after="1em">Function template regex_finder <fo:inline font-family="serif">--</fo:inline> "Regex" finder </fo:block><fo:block>boost::algorithm::regex_finder</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id569083"><fo:block/><fo:block id="id569084" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> regex_finder(<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type MatchFlags = match_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id569135"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">regex_finder</fo:inline> . Finder uses the regex engine to search for a match. Result is given in <fo:inline font-family="monospace">regex_search_result</fo:inline> . This is an extension of the iterator_range. In addition it containes match results from the <fo:inline font-family="monospace">regex_search</fo:inline>  algorithm.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id569166" provisional-distance-between-starts="10em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id569172" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>MatchFlags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex search options </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id569180" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rx</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A regular expression </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id569188" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id569192" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">regex_finder</fo:inline>  object </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id308968"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template regex_formatter</fo:block></fo:block><fo:block space-after="1em">Function template regex_formatter <fo:inline font-family="serif">--</fo:inline> Regex formatter. </fo:block><fo:block>boost::algorithm::regex_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id569227"><fo:block/><fo:block id="id569228" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> TraitsT, <fo:inline font-weight="bold">typename</fo:inline> AllocT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> regex_formatter(<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, TraitsT, AllocT &gt; &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = format_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id569280"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">regex_formatter</fo:inline> . Regex formatter uses the regex engine to format a match found by the <fo:inline font-family="monospace">regex_finder</fo:inline> . This formatted it designed to closely cooperate with <fo:inline font-family="monospace">regex_finder</fo:inline> .</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id569309" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id569316" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Format flags </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id569324" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex format definition </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id569332" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id569335" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">regex_formatter</fo:inline>  functor </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id254240"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/find_iterator.hpp">boost/algorithm/string/find_iterator.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines find iterator classes. Find iterator repeatly applies a Finder to the specified input string to search for matches. Dereferencing the iterator yields the current match or a range between the last and the current match depending on the iterator used.</fo:block><fo:block id="id569374" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="find_iterator">find_iterator</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="split_iterator">split_iterator</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> FinderT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="find_iterator">find_iterator</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="make_find_iterator">make_find_iterator</fo:basic-link>(CollectionT &amp;, FinderT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> FinderT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="split_iterator">split_iterator</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="make_split_iterator">make_split_iterator</fo:basic-link>(CollectionT &amp;, FinderT);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="find_iterator"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template find_iterator</fo:block></fo:block><fo:block space-after="1em">Class template find_iterator <fo:inline font-family="serif">--</fo:inline> find_iterator </fo:block><fo:block>boost::algorithm::find_iterator</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id569584"><fo:block/><fo:block id="id569585" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; 
<fo:inline font-weight="bold">class</fo:inline> find_iterator {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="find_iteratorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id331789-bb">find_iterator</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id256023-bb">find_iterator</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="find_iterator">find_iterator</fo:basic-link> &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> FinderT&gt; <fo:basic-link internal-destination="id346698-bb">find_iterator</fo:basic-link>(IteratorT, IteratorT, FinderT);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id280028-bb">find_iterator</fo:basic-link>(CollectionT &amp;, FinderT);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id227806-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id496198-bb">eof</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id426473-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> match_type &amp; <fo:basic-link internal-destination="id219264-bb">dereference</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id392808-bb">increment</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id285363-bb">equal</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="find_iterator">find_iterator</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id569847"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Find iterator encapsulates a Finder and allows for incremental searching in a string. Each increment moves the iterator to the next match.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Find iterator is a readable forward traversal iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Dereferencing the iterator yields an iterator_range delimiting the current match. </fo:block><fo:block id="id569864"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">find_iterator construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="find_iteratorconstruct-copy-destruct"/><fo:inline font-family="monospace">find_iterator</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id569880" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id569886" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id569888" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id331789-bb"/>find_iterator();</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct null iterator. All null iterators are equal.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id569907" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id569911" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>eof()==true </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id569918" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id569921" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id256023-bb"/>find_iterator(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="find_iterator">find_iterator</fo:basic-link> &amp; Other);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct a copy of the find_iterator </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id569952" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id569954" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> FinderT&gt; 
&#xA0;&#xA0;<fo:wrapper id="id346698-bb"/>find_iterator(IteratorT Begin, IteratorT End, FinderT Finder);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct new find_iterator for a given finder and a range. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id569986" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id569988" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:wrapper id="id280028-bb"/>find_iterator(CollectionT &amp; Col, FinderT Finder);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct new find_iterator for a given finder and a collection. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id570027"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">find_iterator public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id227806-bb"/><fo:inline font-family="monospace">find_iterator</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id570041" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id570047" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id570049" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id496198-bb"/>eof() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Check the eof condition. Eof condition means that there is nothing more to be searched i.e. find_iterator is after the last match. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id570082"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">find_iterator private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id426473-bb"/><fo:inline font-family="monospace">find_iterator</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id570096" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id570102" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id570104" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> match_type &amp; <fo:wrapper id="id219264-bb"/>dereference() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id570133" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id570135" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id392808-bb"/>increment() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id570156" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id570158" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id285363-bb"/>equal(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="find_iterator">find_iterator</fo:basic-link> &amp; Other) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="split_iterator"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template split_iterator</fo:block></fo:block><fo:block space-after="1em">Class template split_iterator <fo:inline font-family="serif">--</fo:inline> split_iterator </fo:block><fo:block>boost::algorithm::split_iterator</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id570218"><fo:block/><fo:block id="id570219" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; 
<fo:inline font-weight="bold">class</fo:inline> split_iterator {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="split_iteratorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id400056-bb">split_iterator</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id327792-bb">split_iterator</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="split_iterator">split_iterator</fo:basic-link> &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> FinderT&gt; <fo:basic-link internal-destination="id374927-bb">split_iterator</fo:basic-link>(IteratorT, IteratorT, FinderT);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id425469-bb">split_iterator</fo:basic-link>(CollectionT &amp;, FinderT);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id427406-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id424583-bb">eof</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id421533-bb">private member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> match_type &amp; <fo:basic-link internal-destination="id369264-bb">dereference</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id349703-bb">increment</fo:basic-link>() ;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id362364-bb">equal</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="split_iterator">split_iterator</fo:basic-link> &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id570482"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Split iterator encapsulates a Finder and allows for incremental searching in a string. Unlike the find iterator, split iterator iterates through gaps between matches.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Find iterator is a readable forward traversal iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Dereferencing the iterator yields an iterator_range delimiting the current match. </fo:block><fo:block id="id570499"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">split_iterator construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="split_iteratorconstruct-copy-destruct"/><fo:inline font-family="monospace">split_iterator</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id570515" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id570522" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id570524" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id400056-bb"/>split_iterator();</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct null iterator. All null iterators are equal.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id570543" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id570546" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>eof()==true </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id570554" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id570556" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id327792-bb"/>split_iterator(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="split_iterator">split_iterator</fo:basic-link> &amp; Other);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct a copy of the split_iterator </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id570586" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id570589" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> FinderT&gt; 
&#xA0;&#xA0;<fo:wrapper id="id374927-bb"/>split_iterator(IteratorT Begin, IteratorT End, FinderT Finder);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct new split_iterator for a given finder and a range. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id570620" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id570622" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> FinderT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:wrapper id="id425469-bb"/>split_iterator(CollectionT &amp; Col, FinderT Finder);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct new split_iterator for a given finder and a collection. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id570660"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">split_iterator public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id427406-bb"/><fo:inline font-family="monospace">split_iterator</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id570675" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id570681" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id570684" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id424583-bb"/>eof() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Check the eof condition. Eof condition means that there is nothing more to be searched i.e. find_iterator is after the last match. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id570716"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">split_iterator private member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id421533-bb"/><fo:inline font-family="monospace">split_iterator</fo:inline> private member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id570731" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id570737" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id570739" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> match_type &amp; <fo:wrapper id="id369264-bb"/>dereference() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id570768" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id570771" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id349703-bb"/>increment() ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id570792" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id570794" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id362364-bb"/>equal(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="split_iterator">split_iterator</fo:basic-link> &amp; Other) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="make_find_iterator"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template make_find_iterator</fo:block></fo:block><fo:block space-after="1em">Function template make_find_iterator <fo:inline font-family="serif">--</fo:inline> find iterator construction helper </fo:block><fo:block>boost::algorithm::make_find_iterator</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id570856"><fo:block/><fo:block id="id570858" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> FinderT&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="find_iterator">find_iterator</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;make_find_iterator(CollectionT &amp; Collection, FinderT Finder);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id570910"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct a find iterator to iterate through the specified string </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="make_split_iterator"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template make_split_iterator</fo:block></fo:block><fo:block space-after="1em">Function template make_split_iterator <fo:inline font-family="serif">--</fo:inline> split iterator construction helper </fo:block><fo:block>boost::algorithm::make_split_iterator</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id570938"><fo:block/><fo:block id="id570940" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> FinderT&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="split_iterator">split_iterator</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;make_split_iterator(CollectionT &amp; Collection, FinderT Finder);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id570992"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct a split iterator to iterate through the specified collection </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id383225"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/finder.hpp">boost/algorithm/string/finder.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines Finder generators. Finder object is a functor which is able to find a substring matching a specific criteria in the input. Finders are used as a pluggable components for replace, find and split facilities. This header contains generator functions for finders provided in this library.</fo:block><fo:block id="id571024" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT&gt; <fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="first_finder">first_finder</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="first_finder">first_finder</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT&gt; <fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="last_finder">last_finder</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="last_finder">last_finder</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="nth_finder">nth_finder</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="nth_finder">nth_finder</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="head_finder">head_finder</fo:basic-link>(<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="tail_finder">tail_finder</fo:basic-link>(<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="token_finder">token_finder</fo:basic-link>(PredicateT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;token_compress_mode_type = token_compress_off);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ForwardIteratorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="range_finder">range_finder</fo:basic-link>(ForwardIteratorT, ForwardIteratorT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ForwardIteratorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="range_finder">range_finder</fo:basic-link>(<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; ForwardIteratorT &gt;);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="first_finder"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function first_finder</fo:block></fo:block><fo:block space-after="1em">Function first_finder <fo:inline font-family="serif">--</fo:inline> "First" finder </fo:block><fo:block>boost::algorithm::first_finder</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id571458"><fo:block/><fo:block id="id571459" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> first_finder(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp; Search);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> first_finder(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp; Search, PredicateT Comp);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id571524"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">first_finder</fo:inline> . The finder searches for the first occurrence of the string in a given input. The result is given as an <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id571548" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id571554" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id571563" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id571566" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">first_finder</fo:inline>  object </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="last_finder"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function last_finder</fo:block></fo:block><fo:block space-after="1em">Function last_finder <fo:inline font-family="serif">--</fo:inline> "Last" finder </fo:block><fo:block>boost::algorithm::last_finder</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id571600"><fo:block/><fo:block id="id571601" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> last_finder(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp; Search);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> last_finder(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp; Search, PredicateT Comp);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id571667"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">last_finder</fo:inline> . The finder searches for the last occurrence of the string in a given input. The result is given as an <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id571690" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id571697" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id571705" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id571709" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">last_finder</fo:inline>  object </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="nth_finder"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function nth_finder</fo:block></fo:block><fo:block space-after="1em">Function nth_finder <fo:inline font-family="serif">--</fo:inline> "Nth" finder </fo:block><fo:block>boost::algorithm::nth_finder</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id571743"><fo:block/><fo:block id="id571744" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> nth_finder(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp; Search, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ContainerT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> nth_finder(<fo:inline font-weight="bold">const</fo:inline> ContainerT &amp; Search, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;PredicateT Comp);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id571835"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">nth_finder</fo:inline> . The finder searches for the n-th (zero-indexed) occurrence of the string in a given input. The result is given as an <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id571856" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id571863" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Nth</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An index of the match to be find </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id571871" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id571879" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id571883" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">nth_finder</fo:inline>  object </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="head_finder"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function head_finder</fo:block></fo:block><fo:block space-after="1em">Function head_finder <fo:inline font-family="serif">--</fo:inline> "Head" finder </fo:block><fo:block>boost::algorithm::head_finder</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id571917"><fo:block/><fo:block id="id571918" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> head_finder(<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id571941"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">head_finder</fo:inline> . The finder returns a head of a given input. The head is a prefix of a string up to n elements in size. If an input has less then n elements, whole input is considered a head. The result is given as an <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id571966" provisional-distance-between-starts="1em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id571972" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>N</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The size of the head </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id571980" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id571984" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">head_finder</fo:inline>  object </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="tail_finder"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function tail_finder</fo:block></fo:block><fo:block space-after="1em">Function tail_finder <fo:inline font-family="serif">--</fo:inline> "Tail" finder </fo:block><fo:block>boost::algorithm::tail_finder</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id572017"><fo:block/><fo:block id="id572018" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-style="italic">unspecified</fo:inline> tail_finder(<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id572042"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">tail_finder</fo:inline> . The finder returns a tail of a given input. The tail is a suffix of a string up to n elements in size. If an input has less then n elements, whole input is considered a head. The result is given as an <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id572066" provisional-distance-between-starts="1em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id572073" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>N</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The size of the head </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id572081" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id572084" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">tail_finder</fo:inline>  object </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="token_finder"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template token_finder</fo:block></fo:block><fo:block space-after="1em">Function template token_finder <fo:inline font-family="serif">--</fo:inline> "Token" finder </fo:block><fo:block>boost::algorithm::token_finder</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id572118"><fo:block/><fo:block id="id572120" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> token_finder(PredicateT Pred, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;token_compress_mode_type eCompress = token_compress_off);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id572146"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">token_finder</fo:inline> . The finder searches for a token specified by a predicate. It is similar to std::find_if algorithm, with an exception that it return a range of instead of a single iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If "compress token mode" is enabled, adjacent matching tokens are concatenated into one match. Thus the finder can be used to search for continuous segments of characters satisfying the given predicate.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The result is given as an <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id572179" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id572186" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Pred</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An element selection predicate </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id572194" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>eCompress</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Compress flag </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id572202" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id572206" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">token_finder</fo:inline>  object </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="range_finder"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function range_finder</fo:block></fo:block><fo:block space-after="1em">Function range_finder <fo:inline font-family="serif">--</fo:inline> "Range" finder </fo:block><fo:block>boost::algorithm::range_finder</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id572240"><fo:block/><fo:block id="id572241" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ForwardIteratorT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> range_finder(ForwardIteratorT Begin, ForwardIteratorT End);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ForwardIteratorT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> range_finder(<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; ForwardIteratorT &gt; Range);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id572294"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">range_finder</fo:inline> . The finder does not perform any operation. It simply returns the given range for any input.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id572310" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id572317" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Begin</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Beginning of the range </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id572325" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>End</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>End of the range </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id572332" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id572336" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">range_finger</fo:inline>  object </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id267193"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/formatter.hpp">boost/algorithm/string/formatter.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines Formatter generators. Formatter is a functor which formats a string according to given parameters. A Formatter works in conjunction with a Finder. A Finder can provide additional information for a specific Formatter. An example of such a cooperation is regex_finder and regex_formatter.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Formatters are used as pluggable components for replace facilities. This header contains generator functions for the Formatters provided in this library.</fo:block><fo:block id="id572380" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="const_formatter">const_formatter</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; <fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="identity_formatter">identity_formatter</fo:basic-link>();
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="empty_formatter">empty_formatter</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="const_formatter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template const_formatter</fo:block></fo:block><fo:block space-after="1em">Function template const_formatter <fo:inline font-family="serif">--</fo:inline> Constant formatter. </fo:block><fo:block>boost::algorithm::const_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id572513"><fo:block/><fo:block id="id572514" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> const_formatter(<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id572545"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">const_formatter</fo:inline> . Const formatter always returns the same value, regardless of the parameter.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id572561" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id572567" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A predefined value used as a result for formating </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id572576" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id572579" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">const_formatter</fo:inline>  object. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="identity_formatter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template identity_formatter</fo:block></fo:block><fo:block space-after="1em">Function template identity_formatter <fo:inline font-family="serif">--</fo:inline> Identity formatter. </fo:block><fo:block>boost::algorithm::identity_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id572614"><fo:block/><fo:block id="id572615" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; <fo:inline font-style="italic">unspecified</fo:inline> identity_formatter();</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id572640"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">identity_formatter</fo:inline> . Identity formatter always returns the parameter.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id572656" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id572659" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">identity_formatter</fo:inline>  object. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="empty_formatter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template empty_formatter</fo:block></fo:block><fo:block space-after="1em">Function template empty_formatter <fo:inline font-family="serif">--</fo:inline> Empty formatter. </fo:block><fo:block>boost::algorithm::empty_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id572694"><fo:block/><fo:block id="id572695" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> empty_formatter(<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; );</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id572726"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">empty_formatter</fo:inline> . Empty formater always returns an empty sequence.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id572742" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id572745" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">empty_formatter</fo:inline>  object. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id365349"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/iterator_range.hpp">boost/algorithm/string/iterator_range.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines the <fo:inline font-family="monospace">iterator_class</fo:inline>  and related functions. <fo:inline font-family="monospace">iterator_range</fo:inline>  is a simple wrapper of the iterator pair idiom. It provides a rich subset of the Container interface.</fo:block><fo:block id="id572794" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> IteratorT, <fo:inline font-weight="bold">typename</fo:inline> Elem, <fo:inline font-weight="bold">typename</fo:inline> Traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; Elem, Traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id282639"><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;</fo:basic-link>(std::basic_ostream&lt; Elem, Traits &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; IteratorT &gt; &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; IteratorT &gt; <fo:basic-link internal-destination="id387885">make_iterator_range</fo:basic-link>(IteratorT, IteratorT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; IteratorT &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id370972">make_iterator_range</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::pair&lt; IteratorT, IteratorT &gt; &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SeqT, <fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SeqT <fo:basic-link internal-destination="copy_iterator_range">copy_iterator_range</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; IteratorT &gt; &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SeqT, <fo:inline font-weight="bold">typename</fo:inline> IteratorT, <fo:inline font-weight="bold">typename</fo:inline> FuncT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SeqT <fo:basic-link internal-destination="transform_iterator_range">transform_iterator_range</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; IteratorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;FuncT);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="iterator_range"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template iterator_range</fo:block></fo:block><fo:block space-after="1em">Class template iterator_range <fo:inline font-family="serif">--</fo:inline> iterator_range class </fo:block><fo:block>boost::algorithm::iterator_range</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id573109"><fo:block/><fo:block id="id573110" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; 
<fo:inline font-weight="bold">class</fo:inline> iterator_range {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; IteratorT &gt; type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// this type </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">unspecified</fo:inline>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; value_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// Encapsulated value type. </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">unspecified</fo:inline>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; reference;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// Reference type. </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">unspecified</fo:inline>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; difference_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// Difference type. </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">unspecified</fo:inline>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; size_type;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// Size type. </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> IteratorT&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; const_iterator;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// const_iterator type </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> IteratorT&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; iterator;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;  <fo:inline font-style="italic">// iterator type </fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> iterator(iterator_range::*&#xA0; unspecified_bool_type;  <fo:inline font-style="italic">// Safe bool conversion. </fo:inline>

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="iterator_rangeconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id474291-bb">iterator_range</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id385891-bb">iterator_range</fo:basic-link>(iterator, iterator);
&#xA0;&#xA0;<fo:basic-link internal-destination="id429521-bb">iterator_range</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::pair&lt; IteratorT, IteratorT &gt; &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id233951-bb">iterator_range</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link> &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OtherItT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id507697-bb">iterator_range</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; OtherItT &gt; &amp;);
&#xA0;&#xA0;iterator_range&amp; <fo:basic-link internal-destination="id234126-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link> &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OtherItT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;iterator_range&amp; <fo:basic-link internal-destination="id245568-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; OtherItT &gt; &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id339322-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OtherItT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id403577-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; OtherItT &gt; &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OtherItT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id370894-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; OtherItT &gt; &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;IteratorT <fo:basic-link internal-destination="id354027-bb">begin</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;IteratorT <fo:basic-link internal-destination="id427176-bb">end</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id401116-bb">empty</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;difference_type <fo:basic-link internal-destination="id420698-bb">size</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id430101-bb">swap</fo:basic-link>(<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link> &amp;) ;
&#xA0;&#xA0;<fo:basic-link internal-destination="id280232-bb"><fo:inline font-weight="bold">operator</fo:inline> unspecified_bool_type</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id573710"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An <fo:inline font-family="monospace">iterator_range</fo:inline>  delimits a range in a sequence by beginning and ending iterators. An iterator_range can be passed to an algorithm which requires a sequence as an input. For example, the <fo:inline font-family="monospace">toupper()</fo:inline>  function may most frequently be used on strings, but can also be used on iterator_ranges:</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id573735" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">                boost::tolower( find( s, "UPPERCASE STRING" ) );
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Many algorithms working with sequences take a pair of iterators, delimiting a working range, as arguments. The <fo:inline font-family="monospace">iterator_range</fo:inline>  class is an encapsulation of a range identified by a pair of iterators. It provides a collection interface, so it is possible to pass an instance to an algorithm requiring a collection as an input. </fo:block><fo:block id="id573756"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">iterator_range construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="iterator_rangeconstruct-copy-destruct"/><fo:inline font-family="monospace">iterator_range</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id573772" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id573778" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id573781" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id474291-bb"/>iterator_range();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id573795" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id573797" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id385891-bb"/>iterator_range(iterator Begin, iterator End);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id573810" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id573813" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id429521-bb"/>iterator_range(<fo:inline font-weight="bold">const</fo:inline> std::pair&lt; IteratorT, IteratorT &gt; &amp; Range);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id573833" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id573836" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id233951-bb"/>iterator_range(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link> &amp; Other);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id573864" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id573866" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OtherItT&gt; 
&#xA0;&#xA0;<fo:wrapper id="id507697-bb"/>iterator_range(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; OtherItT &gt; &amp; Other);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This constructor is provided to allow conversion between const and mutable iterator instances of this class template </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id573913" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id573915" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">iterator_range&amp; <fo:wrapper id="id234126-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link> &amp; Other);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id573950" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id573952" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OtherItT&gt; 
&#xA0;&#xA0;iterator_range&amp; <fo:wrapper id="id245568-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; OtherItT &gt; &amp; Other);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id573999"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">iterator_range public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id339322-bb"/><fo:inline font-family="monospace">iterator_range</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id574014" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id574020" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id574023" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OtherItT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id403577-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; OtherItT &gt; &amp; Other) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Compare operands for equality </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id574086" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id574088" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OtherItT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id370894-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; OtherItT &gt; &amp; Other) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Compare operands for non-equality </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id574151" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id574153" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">IteratorT <fo:wrapper id="id354027-bb"/>begin() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Retrieve the begin iterator </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id574180" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id574182" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">IteratorT <fo:wrapper id="id427176-bb"/>end() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Retrieve the end iterator </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id574210" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id574212" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id401116-bb"/>empty() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test whether the range is empty </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id574241" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id574244" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">difference_type <fo:wrapper id="id420698-bb"/>size() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Retrieve the size of the range </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id574271" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id574273" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id430101-bb"/>swap(<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link> &amp; Other) ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Swap two ranges </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id574305" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id574308" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id280232-bb"/><fo:inline font-weight="bold">operator</fo:inline> unspecified_bool_type() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id282639"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template operator&lt;&lt;</fo:block></fo:block><fo:block space-after="1em">Function template operator&lt;&lt; <fo:inline font-family="serif">--</fo:inline> iterator_range output operator </fo:block><fo:block>boost::algorithm::operator&lt;&lt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id574353"><fo:block/><fo:block id="id574354" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> IteratorT, <fo:inline font-weight="bold">typename</fo:inline> Elem, <fo:inline font-weight="bold">typename</fo:inline> Traits&gt; 
&#xA0;&#xA0;std::basic_ostream&lt; Elem, Traits &gt; &amp; 
&#xA0;&#xA0;<fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; Elem, Traits &gt; &amp; Os, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; IteratorT &gt; &amp; Range);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id574414"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Output the range to an ostream. Elements are outputed in a sequence without separators. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id387885"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template make_iterator_range</fo:block></fo:block><fo:block space-after="1em">Function template make_iterator_range <fo:inline font-family="serif">--</fo:inline> iterator_range construct helper </fo:block><fo:block>boost::algorithm::make_iterator_range</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id574442"><fo:block/><fo:block id="id574443" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; IteratorT &gt; 
&#xA0;&#xA0;make_iterator_range(IteratorT Begin, IteratorT End);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id574474"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct an <fo:inline font-family="monospace">iterator_range</fo:inline>  from a pair of iterators</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id574490" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id574496" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Begin</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A begin iterator </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id574504" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>End</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An end iterator </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id574512" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id574515" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>iterator_range object </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id370972"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template make_iterator_range</fo:block></fo:block><fo:block space-after="1em">Function template make_iterator_range <fo:inline font-family="serif">--</fo:inline> iterator_range construct helper </fo:block><fo:block>boost::algorithm::make_iterator_range</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id574543"><fo:block/><fo:block id="id574544" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; IteratorT &gt; 
&#xA0;&#xA0;make_iterator_range(<fo:inline font-weight="bold">const</fo:inline> std::pair&lt; IteratorT, IteratorT &gt; &amp; Pair);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id574583"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct an <fo:inline font-family="monospace">iterator_range</fo:inline>  from a <fo:inline font-family="monospace">std::pair&lt;&gt;</fo:inline>  containing the begin and end iterators.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id574605" provisional-distance-between-starts="4em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id574611" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Pair</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A <fo:inline font-family="monospace">std::pair&lt;&gt;</fo:inline>  with begin and end iterators </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id574626" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id574630" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">iterator_range</fo:inline>  object </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="copy_iterator_range"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template copy_iterator_range</fo:block></fo:block><fo:block space-after="1em">Function template copy_iterator_range <fo:inline font-family="serif">--</fo:inline> copy a range into a sequence </fo:block><fo:block>boost::algorithm::copy_iterator_range</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id574663"><fo:block/><fo:block id="id574665" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SeqT, <fo:inline font-weight="bold">typename</fo:inline> IteratorT&gt; 
&#xA0;&#xA0;SeqT copy_iterator_range(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; IteratorT &gt; &amp; Range);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id574709"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct a new sequence of the specified type from the elements in the given range</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id574718" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id574724" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Range</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input range </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id574732" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id574736" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>New sequence </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="transform_iterator_range"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template transform_iterator_range</fo:block></fo:block><fo:block space-after="1em">Function template transform_iterator_range <fo:inline font-family="serif">--</fo:inline> transform a range into a sequence </fo:block><fo:block>boost::algorithm::transform_iterator_range</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id574765"><fo:block/><fo:block id="id574766" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SeqT, <fo:inline font-weight="bold">typename</fo:inline> IteratorT, <fo:inline font-weight="bold">typename</fo:inline> FuncT&gt; 
&#xA0;&#xA0;SeqT transform_iterator_range(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; IteratorT &gt; &amp; Range, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;FuncT Func);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id574818"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Create a new sequence from the elements in the range, transformed by a function</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id574828" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id574834" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Func</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Transformation function </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id574842" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Range</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input range </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id574850" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id574854" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>New sequence </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id366812"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/predicate.hpp">boost/algorithm/string/predicate.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines string-related predicates. The predicates determine whether a substring is contained in the input string under various conditions: a string starts with the substring, ends with the substring, simply contains the substring or if both strings are equal. Additionaly the algorithm <fo:inline font-family="monospace">all()</fo:inline>  checks all elements of a container to satisfy a condition.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">All predicates provide the strong exception guarantee.</fo:block><fo:block id="id574896" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="starts_with">starts_with</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="starts_with">starts_with</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="istarts_with">istarts_with</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="ends_with">ends_with</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="ends_with">ends_with</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="iends_with">iends_with</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="contains">contains</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="contains">contains</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="icontains">icontains</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="equals">equals</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="equals">equals</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="iequals">iequals</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="all">all</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, PredicateT);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="starts_with"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function starts_with</fo:block></fo:block><fo:block space-after="1em">Function starts_with <fo:inline font-family="serif">--</fo:inline> 'Starts with' predicate </fo:block><fo:block>boost::algorithm::starts_with</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id575643"><fo:block/><fo:block id="id575644" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> starts_with(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Test, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;PredicateT Comp);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> starts_with(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Test);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id575742"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This predicate holds when the test collection is a prefix of the Input. In other words, if the input starts with the test. When the optional predicate is specified, it is used for character-wise comparison.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id575753" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id575760" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Comp</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An element comparison predicate </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id575768" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id575776" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Test</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A test sequence </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id575784" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id575788" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The result of the test</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id575796" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="istarts_with"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template istarts_with</fo:block></fo:block><fo:block space-after="1em">Function template istarts_with <fo:inline font-family="serif">--</fo:inline> 'Starts with' predicate ( case insensitive ) </fo:block><fo:block>boost::algorithm::istarts_with</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id575824"><fo:block/><fo:block id="id575826" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> istarts_with(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Test, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id575881"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This predicate holds when the test container is a prefix of the Input. In other words, if the input starts with the test. Elements are compared case insensitively.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id575892" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id575898" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id575906" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id575914" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Test</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A test sequence </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id575922" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id575926" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The result of the test</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id575934" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ends_with"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function ends_with</fo:block></fo:block><fo:block space-after="1em">Function ends_with <fo:inline font-family="serif">--</fo:inline> 'Ends with' predicate </fo:block><fo:block>boost::algorithm::ends_with</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id575962"><fo:block/><fo:block id="id575963" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> ends_with(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Test, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;PredicateT Comp);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> ends_with(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Test);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id576061"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This predicate holds when the test container is a suffix of the Input. In other words, if the input ends with the test. When the optional predicate is specified, it is used for character-wise comparison.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id576073" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id576079" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Comp</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An element comparison predicate </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576087" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576095" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Test</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A test sequence </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id576103" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id576107" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The result of the test</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576115" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="iends_with"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template iends_with</fo:block></fo:block><fo:block space-after="1em">Function template iends_with <fo:inline font-family="serif">--</fo:inline> 'Ends with' predicate ( case insensitive ) </fo:block><fo:block>boost::algorithm::iends_with</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id576143"><fo:block/><fo:block id="id576144" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> iends_with(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Test, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id576200"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This predicate holds when the test container is a suffix of the Input. In other words, if the input ends with the test. Elements are compared case insensitively.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id576211" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id576217" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576225" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576233" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Test</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A test sequence </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id576241" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id576245" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The result of the test</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576253" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="contains"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function contains</fo:block></fo:block><fo:block space-after="1em">Function contains <fo:inline font-family="serif">--</fo:inline> 'Contains' predicate </fo:block><fo:block>boost::algorithm::contains</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id576281"><fo:block/><fo:block id="id576282" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> contains(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Test, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;PredicateT Comp);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> contains(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Test);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id576381"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This predicate holds when the test container is contained in the Input. When the optional predicate is specified, it is used for character-wise comparison.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id576391" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id576398" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Comp</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An element comparison predicate </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576406" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576414" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Test</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A test sequence </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id576422" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id576426" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The result of the test</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576434" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="icontains"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template icontains</fo:block></fo:block><fo:block space-after="1em">Function template icontains <fo:inline font-family="serif">--</fo:inline> 'Contains' predicate ( case insensitive ) </fo:block><fo:block>boost::algorithm::icontains</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id576462"><fo:block/><fo:block id="id576464" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> icontains(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Test, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id576519"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This predicate holds when the test container is contained in the Input. Elements are compared case insensitively.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id576529" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id576535" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576543" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576552" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Test</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A test sequence </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id576560" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id576563" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The result of the test</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576571" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="equals"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function equals</fo:block></fo:block><fo:block space-after="1em">Function equals <fo:inline font-family="serif">--</fo:inline> 'Equals' predicate </fo:block><fo:block>boost::algorithm::equals</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id576599"><fo:block/><fo:block id="id576600" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> equals(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Test, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;PredicateT Comp);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> equals(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Test);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id576699"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This predicate holds when the test container is equal to the input container i.e. all elements in both containers are same. When the optional predicate is specified, it is used for character-wise comparison.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id576710" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id576716" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Comp</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An element comparison predicate </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576724" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576732" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Test</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A test sequence </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id576740" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id576744" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The result of the test</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576752" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This is a two-way version of <fo:inline font-family="monospace">std::equal</fo:inline>  algorithm</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="iequals"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template iequals</fo:block></fo:block><fo:block space-after="1em">Function template iequals <fo:inline font-family="serif">--</fo:inline> 'Equals' predicate ( casa insensitive ) </fo:block><fo:block>boost::algorithm::iequals</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id576790"><fo:block/><fo:block id="id576791" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> iequals(<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Test, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id576847"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This predicate holds when the test container is equal to the input container i.e. all elements in both containers are same. Elements are compared case insensitively.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id576857" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id576864" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576872" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576880" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Test</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A test sequence </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id576888" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id576892" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The result of the test</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id576900" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This is a two-way version of <fo:inline font-family="monospace">std::equal</fo:inline>  algorithm</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="all"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template all</fo:block></fo:block><fo:block space-after="1em">Function template all <fo:inline font-family="serif">--</fo:inline> 'All' predicate </fo:block><fo:block>boost::algorithm::all</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id576937"><fo:block/><fo:block id="id576938" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> all(<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, PredicateT Pred);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id576979"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This predicate holds it all its elements satisfy a given condition, represented by the predicate.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id576989" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id576995" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id577003" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Pred</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A predicate </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id577011" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id577015" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The result of the test</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id577023" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id326535"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/regex.hpp">boost/algorithm/string/regex.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines regex variants of the algorithms.</fo:block><fo:block id="id577051" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="find_regex">find_regex</fo:basic-link>(CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatStringTraitsT, <fo:inline font-weight="bold">typename</fo:inline> FormatStringAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="replace_regex_copy">replace_regex_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default|format_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT, <fo:inline font-weight="bold">typename</fo:inline> FormatStringTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatStringAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="replace_regex_copy">replace_regex_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default|format_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT, <fo:inline font-weight="bold">typename</fo:inline> FormatStringTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatStringAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="replace_regex">replace_regex</fo:basic-link>(SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default|format_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatStringTraitsT, <fo:inline font-weight="bold">typename</fo:inline> FormatStringAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="replace_all_regex_copy">replace_all_regex_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default|format_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT, <fo:inline font-weight="bold">typename</fo:inline> FormatStringTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatStringAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="replace_all_regex_copy">replace_all_regex_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default|format_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT, <fo:inline font-weight="bold">typename</fo:inline> FormatStringTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatStringAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="replace_all_regex">replace_all_regex</fo:basic-link>(SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default|format_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="erase_regex_copy">erase_regex_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="erase_regex_copy">erase_regex_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="erase_regex">erase_regex</fo:basic-link>(SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="erase_all_regex_copy">erase_all_regex_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="erase_all_regex_copy">erase_all_regex_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="erase_all_regex">erase_all_regex</fo:basic-link>(SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceSequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceSequenceT &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="find_all_regex">find_all_regex</fo:basic-link>(SequenceSequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceSequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceSequenceT &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="split_regex">split_regex</fo:basic-link>(SequenceSequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="find_regex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template find_regex</fo:block></fo:block><fo:block space-after="1em">Function template find_regex <fo:inline font-family="serif">--</fo:inline> Find regex algorithm. </fo:block><fo:block>boost::algorithm::find_regex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id578301"><fo:block/><fo:block id="id578302" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="result_iterator_of">result_iterator_of</fo:basic-link>&lt; CollectionT &gt;::type &gt; 
&#xA0;&#xA0;find_regex(CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id578378"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Search for a substring matching the given regex in the input.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id578387" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id578393" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex options </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id578401" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A container which will be searched. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id578410" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rx</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A regular expression </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id578417" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id578421" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An <fo:inline font-family="monospace">iterator_range</fo:inline>  delimiting the match. Returned iterator is either <fo:inline font-family="monospace">InputContainerT::iterator</fo:inline>  or <fo:inline font-family="monospace">InputContainerT::const_iterator</fo:inline> , depending on the constness of the input parameter.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id578449" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_regex_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function replace_regex_copy</fo:block></fo:block><fo:block space-after="1em">Function replace_regex_copy <fo:inline font-family="serif">--</fo:inline> Replace regex algorithm. </fo:block><fo:block>boost::algorithm::replace_regex_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id578479"><fo:block/><fo:block id="id578480" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatStringTraitsT, <fo:inline font-weight="bold">typename</fo:inline> FormatStringAllocatorT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;replace_regex_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default|format_default);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT, <fo:inline font-weight="bold">typename</fo:inline> FormatStringTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatStringAllocatorT&gt; 
&#xA0;&#xA0;SequenceT replace_regex_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default|format_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id578659"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Search for a substring matching given regex and format it with the specified format. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id578670" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id578677" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex options </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id578684" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex format definition </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id578693" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id578701" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id578709" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rx</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A regular expression </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id578717" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id578720" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id578730" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_regex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template replace_regex</fo:block></fo:block><fo:block space-after="1em">Function template replace_regex <fo:inline font-family="serif">--</fo:inline> Replace regex algorithm. </fo:block><fo:block>boost::algorithm::replace_regex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id578759"><fo:block/><fo:block id="id578760" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT, <fo:inline font-weight="bold">typename</fo:inline> FormatStringTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatStringAllocatorT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> replace_regex(SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default|format_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id578842"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Search for a substring matching given regex and format it with the specified format. The input string is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id578852" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id578858" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex options </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id578866" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex format definition </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id578874" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id578882" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rx</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A regular expression </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_all_regex_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function replace_all_regex_copy</fo:block></fo:block><fo:block space-after="1em">Function replace_all_regex_copy <fo:inline font-family="serif">--</fo:inline> Replace all regex algorithm. </fo:block><fo:block>boost::algorithm::replace_all_regex_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id578910"><fo:block/><fo:block id="id578912" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatStringTraitsT, <fo:inline font-weight="bold">typename</fo:inline> FormatStringAllocatorT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;replace_all_regex_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default|format_default);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT, <fo:inline font-weight="bold">typename</fo:inline> FormatStringTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatStringAllocatorT&gt; 
&#xA0;&#xA0;SequenceT replace_all_regex_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default|format_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id579096"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Format all substrings, matching given regex, with the specified format. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id579107" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id579113" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex options </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579121" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex format definition </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579129" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579137" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579146" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rx</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A regular expression </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id579154" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id579157" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579167" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_all_regex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template replace_all_regex</fo:block></fo:block><fo:block space-after="1em">Function template replace_all_regex <fo:inline font-family="serif">--</fo:inline> Replace all regex algorithm. </fo:block><fo:block>boost::algorithm::replace_all_regex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id579196"><fo:block/><fo:block id="id579197" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT, <fo:inline font-weight="bold">typename</fo:inline> FormatStringTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> FormatStringAllocatorT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> replace_all_regex(SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, FormatStringTraitsT, FormatStringAllocatorT &gt; &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default|format_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id579284"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Format all substrings, matching given regex, with the specified format. The input string is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id579293" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id579300" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex options </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579308" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex format definition </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579316" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579324" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rx</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A regular expression </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_regex_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function erase_regex_copy</fo:block></fo:block><fo:block space-after="1em">Function erase_regex_copy <fo:inline font-family="serif">--</fo:inline> Erase regex algorithm. </fo:block><fo:block>boost::algorithm::erase_regex_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id579351"><fo:block/><fo:block id="id579352" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;erase_regex_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;SequenceT erase_regex_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id579481"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove a substring matching given regex from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id579492" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id579498" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex options </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579506" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579514" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579523" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rx</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A regular expression </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id579530" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id579534" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579543" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_regex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template erase_regex</fo:block></fo:block><fo:block space-after="1em">Function template erase_regex <fo:inline font-family="serif">--</fo:inline> Erase regex algorithm. </fo:block><fo:block>boost::algorithm::erase_regex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id579572"><fo:block/><fo:block id="id579573" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> erase_regex(SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id579630"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove a substring matching given regex from the input. The input string is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id579640" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id579646" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex options </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579654" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579662" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rx</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A regular expression </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_all_regex_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function erase_all_regex_copy</fo:block></fo:block><fo:block space-after="1em">Function erase_all_regex_copy <fo:inline font-family="serif">--</fo:inline> Erase all regex algorithm. </fo:block><fo:block>boost::algorithm::erase_all_regex_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id579690"><fo:block/><fo:block id="id579691" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;erase_all_regex_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;SequenceT erase_all_regex_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id579825"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Erase all substrings, matching given regex, from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id579835" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id579842" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex options </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579850" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579858" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579866" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rx</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A regular expression </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id579874" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id579877" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id579887" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="erase_all_regex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template erase_all_regex</fo:block></fo:block><fo:block space-after="1em">Function template erase_all_regex <fo:inline font-family="serif">--</fo:inline> Erase all regex algorithm. </fo:block><fo:block>boost::algorithm::erase_all_regex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id579916"><fo:block/><fo:block id="id579917" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> erase_all_regex(SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id579979"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Erase all substrings, matching given regex, from the input. The input string is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id579988" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id579994" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex options </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id580002" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id580010" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rx</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A regular expression </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="find_all_regex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template find_all_regex</fo:block></fo:block><fo:block space-after="1em">Function template find_all_regex <fo:inline font-family="serif">--</fo:inline> Find all regex algorithm. </fo:block><fo:block>boost::algorithm::find_all_regex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id580038"><fo:block/><fo:block id="id580039" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceSequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;SequenceSequenceT &amp; 
&#xA0;&#xA0;find_all_regex(SequenceSequenceT &amp; Result, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id580108"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This algorithm finds all substrings matching the give regex in the input.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are <fo:inline font-family="monospace">std::vector&lt;std::string&gt;</fo:inline>  or <fo:inline font-family="monospace">std::list&lt;boost::iterator_range&lt;std::string::iterator&gt;&gt;</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id580137" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id580144" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex options </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id580152" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A container which will be searched. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id580160" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Result</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A container that can hold copies of references to the substrings. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id580169" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rx</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A regular expression </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id580176" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id580180" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A reference to the result</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id580188" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Prior content of the result will be overwritten.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="split_regex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template split_regex</fo:block></fo:block><fo:block space-after="1em">Function template split_regex <fo:inline font-family="serif">--</fo:inline> Split regex algorithm. </fo:block><fo:block>boost::algorithm::split_regex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id580220"><fo:block/><fo:block id="id580222" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceSequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> CharT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;SequenceSequenceT &amp; 
&#xA0;&#xA0;split_regex(SequenceSequenceT &amp; Result, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = match_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id580290"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Tokenize expression. This function is equivalent to C strtok. Input sequence is split into tokens, separated by separators. Separator is an every match of the given regex. Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are <fo:inline font-family="monospace">std::vector&lt;std::string&gt;</fo:inline>  or <fo:inline font-family="monospace">std::list&lt;boost::iterator_range&lt;std::string::iterator&gt;&gt;</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id580319" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id580325" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex options </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id580333" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A container which will be searched. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id580341" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Result</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A container that can hold copies of references to the substrings. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id580350" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rx</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A regular expression </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id580358" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id580361" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A reference to the result</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id580370" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Prior content of the result will be overwritten.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id227790"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/regex_find_format.hpp">boost/algorithm/string/regex_find_format.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines the <fo:inline font-family="monospace">regex_finder</fo:inline>  and <fo:inline font-family="monospace">regex_formatter</fo:inline>  generators. These two functors are designed to work together. <fo:inline font-family="monospace">regex_formatter</fo:inline>  uses additional information about a match contained in the regex_finder search result.</fo:block><fo:block id="id580424" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="id333252">regex_finder</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = match_default);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> TraitsT, <fo:inline font-weight="bold">typename</fo:inline> AllocT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> <fo:basic-link internal-destination="id325454">regex_formatter</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, TraitsT, AllocT &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type = format_default);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="id333252"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template regex_finder</fo:block></fo:block><fo:block space-after="1em">Function template regex_finder <fo:inline font-family="serif">--</fo:inline> "Regex" finder </fo:block><fo:block>boost::algorithm::regex_finder</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id580569"><fo:block/><fo:block id="id580570" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> RegexTraitsT, <fo:inline font-weight="bold">typename</fo:inline> RegexAllocatorT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> regex_finder(<fo:inline font-weight="bold">const</fo:inline> reg_expression&lt; CharT, RegexTraitsT, RegexAllocatorT &gt; &amp; Rx, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type MatchFlags = match_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id580621"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">regex_finder</fo:inline> . Finder uses the regex engine to search for a match. Result is given in <fo:inline font-family="monospace">regex_search_result</fo:inline> . This is an extension of the iterator_range. In addition it containes match results from the <fo:inline font-family="monospace">regex_search</fo:inline>  algorithm.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id580652" provisional-distance-between-starts="10em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id580658" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>MatchFlags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex search options </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id580666" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rx</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A regular expression </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id580674" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id580678" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">regex_finder</fo:inline>  object </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id325454"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template regex_formatter</fo:block></fo:block><fo:block space-after="1em">Function template regex_formatter <fo:inline font-family="serif">--</fo:inline> Regex formatter. </fo:block><fo:block>boost::algorithm::regex_formatter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id580712"><fo:block/><fo:block id="id580714" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> TraitsT, <fo:inline font-weight="bold">typename</fo:inline> AllocT&gt; 
&#xA0;&#xA0;<fo:inline font-style="italic">unspecified</fo:inline> regex_formatter(<fo:inline font-weight="bold">const</fo:inline> std::basic_string&lt; CharT, TraitsT, AllocT &gt; &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;match_flag_type Flags = format_default);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id580763"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct the <fo:inline font-family="monospace">regex_formatter</fo:inline> . Regex formatter uses the regex engine to format a match found by the <fo:inline font-family="monospace">regex_finder</fo:inline> . This formatted it designed to closely cooperate with <fo:inline font-family="monospace">regex_finder</fo:inline> .</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id580793" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id580799" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flags</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Format flags </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id580807" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Regex format definition </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id580816" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id580819" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An instance of the <fo:inline font-family="monospace">regex_formatter</fo:inline>  functor </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id439791"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/replace.hpp">boost/algorithm/string/replace.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines various replace algorithms. Each algorithm replaces part(s) of the input according to set of searching and replace criteria.</fo:block><fo:block id="id580855" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="replace_range_copy">replace_range_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="const_iterator_of">const_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="replace_range_copy">replace_range_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="const_iterator_of">const_iterator_of</fo:basic-link>&lt; SequenceT &gt;::type &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="replace_range">replace_range</fo:basic-link>(SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="iterator_of">iterator_of</fo:basic-link>&lt; SequenceT &gt;::type &gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="replace_first_copy">replace_first_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection3T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="replace_first_copy">replace_first_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="replace_first">replace_first</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ireplace_first_copy">ireplace_first_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection3T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection1T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="ireplace_first_copy">ireplace_first_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="ireplace_first">ireplace_first</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="replace_last_copy">replace_last_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection3T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="replace_last_copy">replace_last_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="replace_last">replace_last</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ireplace_last_copy">ireplace_last_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection3T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="ireplace_last_copy">ireplace_last_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="ireplace_last">ireplace_last</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="replace_nth_copy">replace_nth_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection3T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="replace_nth_copy">replace_nth_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="replace_nth">replace_nth</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ireplace_nth_copy">ireplace_nth_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection3T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="ireplace_nth_copy">ireplace_nth_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="ireplace_nth">ireplace_nth</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="replace_all_copy">replace_all_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection3T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="replace_all_copy">replace_all_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="replace_all">replace_all</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ireplace_all_copy">ireplace_all_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection3T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="ireplace_all_copy">ireplace_all_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="ireplace_all">ireplace_all</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="replace_head_copy">replace_head_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="replace_head_copy">replace_head_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="replace_head">replace_head</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="replace_tail_copy">replace_tail_copy</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="replace_tail_copy">replace_tail_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="replace_tail">replace_tail</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline>, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="replace_range_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function replace_range_copy</fo:block></fo:block><fo:block space-after="1em">Function replace_range_copy <fo:inline font-family="serif">--</fo:inline> Replace range algorithm. </fo:block><fo:block>boost::algorithm::replace_range_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id583237"><fo:block/><fo:block id="id583239" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;replace_range_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="const_iterator_of">const_iterator_of</fo:basic-link>&lt; Collection1T &gt;::type &gt; &amp; SearchRange, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;SequenceT replace_range_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="const_iterator_of">const_iterator_of</fo:basic-link>&lt; SequenceT &gt;::type &gt; &amp; SearchRange, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id583395"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace the given range in the input string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id583405" provisional-distance-between-starts="11em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id583411" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id583419" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id583427" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id583436" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>SearchRange</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A range in the input to be substituted </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id583444" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id583448" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id583457" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_range"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template replace_range</fo:block></fo:block><fo:block space-after="1em">Function template replace_range <fo:inline font-family="serif">--</fo:inline> Replace range algorithm. </fo:block><fo:block>boost::algorithm::replace_range</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id583486"><fo:block/><fo:block id="id583487" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> replace_range(SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="iterator_range">iterator_range</fo:basic-link>&lt; <fo:inline font-weight="bold">typename</fo:inline> <fo:basic-link internal-destination="iterator_of">iterator_of</fo:basic-link>&lt; SequenceT &gt;::type &gt; &amp; SearchRange, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id583559"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace the given range in the input string. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id583568" provisional-distance-between-starts="11em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id583575" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id583583" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id583591" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>SearchRange</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A range in the input to be substituted </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_first_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function replace_first_copy</fo:block></fo:block><fo:block space-after="1em">Function replace_first_copy <fo:inline font-family="serif">--</fo:inline> Replace first algorithm. </fo:block><fo:block>boost::algorithm::replace_first_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id583620"><fo:block/><fo:block id="id583621" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;replace_first_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection3T &amp; Format);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;SequenceT replace_first_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id583744"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace the first match of the search substring in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id583755" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id583762" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id583770" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id583778" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id583786" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id583794" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id583798" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id583807" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_first"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template replace_first</fo:block></fo:block><fo:block space-after="1em">Function template replace_first <fo:inline font-family="serif">--</fo:inline> Replace first algorithm. </fo:block><fo:block>boost::algorithm::replace_first</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id583836"><fo:block/><fo:block id="id583838" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> replace_first(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id583892"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">replace the first match of the search substring in the input with the format string. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id583902" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id583909" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id583917" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id583925" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ireplace_first_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function ireplace_first_copy</fo:block></fo:block><fo:block space-after="1em">Function ireplace_first_copy <fo:inline font-family="serif">--</fo:inline> Replace first algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ireplace_first_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id583953"><fo:block/><fo:block id="id583954" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;ireplace_first_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection3T &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection1T&gt; 
&#xA0;&#xA0;SequenceT ireplace_first_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id584100"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace the first match of the search substring in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id584112" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id584118" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584126" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584134" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584142" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584151" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id584159" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id584162" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584172" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ireplace_first"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template ireplace_first</fo:block></fo:block><fo:block space-after="1em">Function template ireplace_first <fo:inline font-family="serif">--</fo:inline> Replace first algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ireplace_first</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id584201"><fo:block/><fo:block id="id584203" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> ireplace_first(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id584269"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace the first match of the search substring in the input with the format string. Input sequence is modified in-place. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id584279" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id584286" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584294" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584302" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584310" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_last_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function replace_last_copy</fo:block></fo:block><fo:block space-after="1em">Function replace_last_copy <fo:inline font-family="serif">--</fo:inline> Replace last algorithm. </fo:block><fo:block>boost::algorithm::replace_last_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id584338"><fo:block/><fo:block id="id584339" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;replace_last_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, <fo:inline font-weight="bold">const</fo:inline> Collection3T &amp; Format);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;SequenceT replace_last_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id584462"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace the last match of the search string in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id584472" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id584479" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584487" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584495" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584504" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id584512" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id584515" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584525" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_last"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template replace_last</fo:block></fo:block><fo:block space-after="1em">Function template replace_last <fo:inline font-family="serif">--</fo:inline> Replace last algorithm. </fo:block><fo:block>boost::algorithm::replace_last</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id584553"><fo:block/><fo:block id="id584554" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> replace_last(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id584609"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace the last match of the search string in the input with the format string. Input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id584619" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id584625" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584633" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584641" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ireplace_last_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function ireplace_last_copy</fo:block></fo:block><fo:block space-after="1em">Function ireplace_last_copy <fo:inline font-family="serif">--</fo:inline> Replace last algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ireplace_last_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id584670"><fo:block/><fo:block id="id584672" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;ireplace_last_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection3T &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;SequenceT ireplace_last_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id584814"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace the last match of the search string in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id584825" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id584832" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584840" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584848" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584856" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584864" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id584872" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id584876" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id584885" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ireplace_last"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template ireplace_last</fo:block></fo:block><fo:block space-after="1em">Function template ireplace_last <fo:inline font-family="serif">--</fo:inline> Replace last algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ireplace_last</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id584914"><fo:block/><fo:block id="id584915" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> ireplace_last(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id584979"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace the last match of the search string in the input with the format string.The input sequence is modified in-place. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id584989" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id584996" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585004" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585012" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585020" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id585028" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id585032" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A reference to the modified input </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_nth_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function replace_nth_copy</fo:block></fo:block><fo:block space-after="1em">Function replace_nth_copy <fo:inline font-family="serif">--</fo:inline> Replace nth algorithm. </fo:block><fo:block>boost::algorithm::replace_nth_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id585060"><fo:block/><fo:block id="id585061" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;replace_nth_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection3T &amp; Format);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;SequenceT replace_nth_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id585211"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace an Nth (zero-indexed) match of the search string in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id585222" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id585228" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585236" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585244" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Nth</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An index of the match to be replaced. The index is 0-based. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585253" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585261" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id585269" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id585273" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585282" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_nth"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template replace_nth</fo:block></fo:block><fo:block space-after="1em">Function template replace_nth <fo:inline font-family="serif">--</fo:inline> Replace nth algorithm. </fo:block><fo:block>boost::algorithm::replace_nth</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id585311"><fo:block/><fo:block id="id585312" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> replace_nth(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id585380"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace an Nth (zero-indexed) match of the search string in the input with the format string. Input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id585390" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id585396" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585404" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585412" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Nth</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An index of the match to be replaced. The index is 0-based. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585421" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ireplace_nth_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function ireplace_nth_copy</fo:block></fo:block><fo:block space-after="1em">Function ireplace_nth_copy <fo:inline font-family="serif">--</fo:inline> Replace nth algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ireplace_nth_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id585450"><fo:block/><fo:block id="id585451" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;ireplace_nth_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection3T &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;SequenceT ireplace_nth_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id585619"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace an Nth (zero-indexed) match of the search string in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id585630" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id585637" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585645" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585653" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585661" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Nth</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An index of the match to be replaced. The index is 0-based. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585669" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585678" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id585686" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id585690" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585699" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ireplace_nth"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template ireplace_nth</fo:block></fo:block><fo:block space-after="1em">Function template ireplace_nth <fo:inline font-family="serif">--</fo:inline> Replace nth algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ireplace_nth</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id585728"><fo:block/><fo:block id="id585729" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> ireplace_nth(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> Nth, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id585805"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace an Nth (zero-indexed) match of the search string in the input with the format string. Input sequence is modified in-place. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id585816" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id585822" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585830" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585838" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585846" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Nth</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An index of the match to be replaced. The index is 0-based. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id585855" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_all_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function replace_all_copy</fo:block></fo:block><fo:block space-after="1em">Function replace_all_copy <fo:inline font-family="serif">--</fo:inline> Replace all algorithm. </fo:block><fo:block>boost::algorithm::replace_all_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id585882"><fo:block/><fo:block id="id585884" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;replace_all_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, <fo:inline font-weight="bold">const</fo:inline> Collection3T &amp; Format);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;SequenceT replace_all_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id586007"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace all occurrences of the search string in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id586018" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id586024" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586032" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586040" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586048" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id586057" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id586060" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586070" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_all"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template replace_all</fo:block></fo:block><fo:block space-after="1em">Function template replace_all <fo:inline font-family="serif">--</fo:inline> Replace all algorithm. </fo:block><fo:block>boost::algorithm::replace_all</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id586098"><fo:block/><fo:block id="id586100" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> replace_all(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id586155"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace all occurrences of the search string in the input with the format string. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id586164" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id586171" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586179" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586187" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id586195" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id586199" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A reference to the modified input </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ireplace_all_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function ireplace_all_copy</fo:block></fo:block><fo:block space-after="1em">Function ireplace_all_copy <fo:inline font-family="serif">--</fo:inline> Replace all algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ireplace_all_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id586228"><fo:block/><fo:block id="id586229" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T, <fo:inline font-weight="bold">typename</fo:inline> Collection3T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;ireplace_all_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, <fo:inline font-weight="bold">const</fo:inline> Collection3T &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;SequenceT ireplace_all_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id586370"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace all occurrences of the search string in the input with the format string. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id586382" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id586388" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586396" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586404" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586412" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586421" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id586429" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id586433" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586442" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ireplace_all"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template ireplace_all</fo:block></fo:block><fo:block space-after="1em">Function template ireplace_all <fo:inline font-family="serif">--</fo:inline> Replace all algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ireplace_all</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id586471"><fo:block/><fo:block id="id586472" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, <fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> ireplace_all(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id586536"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace all occurrences of the search string in the input with the format string.The input sequence is modified in-place. Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id586546" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id586553" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586561" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586569" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586577" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_head_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function replace_head_copy</fo:block></fo:block><fo:block space-after="1em">Function replace_head_copy <fo:inline font-family="serif">--</fo:inline> Replace head algorithm. </fo:block><fo:block>boost::algorithm::replace_head_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id586605"><fo:block/><fo:block id="id586606" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;replace_head_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;SequenceT replace_head_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id586724"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace the head of the input with the given format string. The head is a prefix of a string of given size. If the sequence is shorter then required, whole string if considered to be the head. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id586737" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id586744" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586752" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586760" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>N</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Length of the head </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586767" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id586776" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id586780" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586789" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_head"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template replace_head</fo:block></fo:block><fo:block space-after="1em">Function template replace_head <fo:inline font-family="serif">--</fo:inline> Replace head algorithm. </fo:block><fo:block>boost::algorithm::replace_head</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id586818"><fo:block/><fo:block id="id586819" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> replace_head(SequenceT &amp; Input, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id586874"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace the head of the input with the given format string. The head is a prefix of a string of given size. If the sequence is shorter then required, the whole string is considered to be the head. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id586885" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id586892" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586900" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id586908" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>N</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Length of the head </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_tail_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function replace_tail_copy</fo:block></fo:block><fo:block space-after="1em">Function replace_tail_copy <fo:inline font-family="serif">--</fo:inline> Replace tail algorithm. </fo:block><fo:block>boost::algorithm::replace_tail_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id586936"><fo:block/><fo:block id="id586937" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;replace_tail_copy(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Format);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;SequenceT replace_tail_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id587055"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace the tail of the input with the given format string. The tail is a suffix of a string of given size. If the sequence is shorter then required, whole string is considered to be the tail. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id587068" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id587075" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id587083" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id587091" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>N</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Length of the tail </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id587098" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id587107" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id587110" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a modified copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id587120" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="replace_tail"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template replace_tail</fo:block></fo:block><fo:block space-after="1em">Function template replace_tail <fo:inline font-family="serif">--</fo:inline> Replace tail algorithm. </fo:block><fo:block>boost::algorithm::replace_tail</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id587149"><fo:block/><fo:block id="id587150" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> replace_tail(SequenceT &amp; Input, <fo:inline font-weight="bold">unsigned</fo:inline> <fo:inline font-weight="bold">int</fo:inline> N, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Format);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id587204"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Replace the tail of the input with the given format sequence. The tail is a suffix of a string of given size. If the sequence is shorter then required, the whole string is considered to be the tail. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id587216" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id587223" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Format</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substitute string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id587231" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input string </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id587239" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>N</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Length of the tail </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id264095"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/sequence_traits.hpp">boost/algorithm/string/sequence_traits.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Traits defined in this header are used by various algorithms to achieve better performance for specific containers. Traits provide fail-safe defaults. If a container supports some of these features, it is possible to specialize the specific trait for this container. For lacking compilers, it is possible of define an override for a specific tester function.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Due to a language restriction, it is not currently possible to define specializations for stl containers without including the corresponding header. To decrease the overhead needed by this inclusion, user can selectively include a specialization header for a specific container. They are located in boost/algorithm/string/stl directory. Alternatively she can include boost/algorithm/string/std_collection_traits.hpp header which contains specializations for all stl containers.</fo:block><fo:block id="id587282" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="has_native_replace">has_native_replace</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="has_stable_iterators">has_stable_iterators</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="has_const_time_insert">has_const_time_insert</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="has_const_time_erase">has_const_time_erase</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="has_native_replace"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template has_native_replace</fo:block></fo:block><fo:block space-after="1em">Class template has_native_replace <fo:inline font-family="serif">--</fo:inline> Native replace trait. </fo:block><fo:block>boost::algorithm::has_native_replace</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id587433"><fo:block/><fo:block id="id587434" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; 
<fo:inline font-weight="bold">class</fo:inline> has_native_replace {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> mpl::bool_&lt; value &gt; type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id404694-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0; <fo:basic-link internal-destination="id404700-bb">BOOST_STATIC_CONSTANT</fo:basic-link>(<fo:inline font-weight="bold">bool</fo:inline>, value = false) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id587508"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This trait specifies that the sequence has <fo:inline font-family="monospace">std::string</fo:inline>  like replace method </fo:block><fo:block id="id587522"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">has_native_replace public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id404694-bb"/><fo:inline font-family="monospace">has_native_replace</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id587537" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id587542" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id587545" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"> <fo:wrapper id="id404700-bb"/>BOOST_STATIC_CONSTANT(<fo:inline font-weight="bold">bool</fo:inline> , value  = false) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="has_stable_iterators"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template has_stable_iterators</fo:block></fo:block><fo:block space-after="1em">Class template has_stable_iterators <fo:inline font-family="serif">--</fo:inline> Stable iterators trait. </fo:block><fo:block>boost::algorithm::has_stable_iterators</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id587588"><fo:block/><fo:block id="id587589" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; 
<fo:inline font-weight="bold">class</fo:inline> has_stable_iterators {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> mpl::bool_&lt; value &gt; type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id430089-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0; <fo:basic-link internal-destination="id299546-bb">BOOST_STATIC_CONSTANT</fo:basic-link>(<fo:inline font-weight="bold">bool</fo:inline>, value = false) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id587662"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This trait specifies that the sequence has stable iterators. It means that operations like insert/erase/replace do not invalidate iterators. </fo:block><fo:block id="id587671"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">has_stable_iterators public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id430089-bb"/><fo:inline font-family="monospace">has_stable_iterators</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id587686" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id587692" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id587694" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"> <fo:wrapper id="id299546-bb"/>BOOST_STATIC_CONSTANT(<fo:inline font-weight="bold">bool</fo:inline> , value  = false) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="has_const_time_insert"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template has_const_time_insert</fo:block></fo:block><fo:block space-after="1em">Class template has_const_time_insert <fo:inline font-family="serif">--</fo:inline> Const time insert trait. </fo:block><fo:block>boost::algorithm::has_const_time_insert</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id587738"><fo:block/><fo:block id="id587739" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; 
<fo:inline font-weight="bold">class</fo:inline> has_const_time_insert {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> mpl::bool_&lt; value &gt; type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id502277-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0; <fo:basic-link internal-destination="id502283-bb">BOOST_STATIC_CONSTANT</fo:basic-link>(<fo:inline font-weight="bold">bool</fo:inline>, value = false) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id587812"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This trait specifies that the sequence's insert method has constant time complexity. </fo:block><fo:block id="id587820"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">has_const_time_insert public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id502277-bb"/><fo:inline font-family="monospace">has_const_time_insert</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id587835" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id587841" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id587843" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"> <fo:wrapper id="id502283-bb"/>BOOST_STATIC_CONSTANT(<fo:inline font-weight="bold">bool</fo:inline> , value  = false) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="has_const_time_erase"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template has_const_time_erase</fo:block></fo:block><fo:block space-after="1em">Class template has_const_time_erase <fo:inline font-family="serif">--</fo:inline> Const time erase trait. </fo:block><fo:block>boost::algorithm::has_const_time_erase</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id587887"><fo:block/><fo:block id="id587889" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; 
<fo:inline font-weight="bold">class</fo:inline> has_const_time_erase {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> mpl::bool_&lt; value &gt; type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id313377-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0; <fo:basic-link internal-destination="id463066-bb">BOOST_STATIC_CONSTANT</fo:basic-link>(<fo:inline font-weight="bold">bool</fo:inline>, value = false) ;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id587961"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This trait specifies that the sequence's erase method has constant time complexity. </fo:block><fo:block id="id587969"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">has_const_time_erase public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id313377-bb"/><fo:inline font-family="monospace">has_const_time_erase</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id587984" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id587990" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id587992" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"> <fo:wrapper id="id463066-bb"/>BOOST_STATIC_CONSTANT(<fo:inline font-weight="bold">bool</fo:inline> , value  = false) ;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id477625"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/split.hpp">boost/algorithm/string/split.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines basic split algorithms. Split algorithms can be used to divide a string into several parts according to given criteria.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are <fo:inline font-family="monospace">std::vector&lt;std::string&gt;</fo:inline>  or <fo:inline font-family="monospace">std::list&lt;boost::iterator_range&lt;std::string::iterator&gt;&gt;</fo:inline></fo:block><fo:block id="id588057" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceSequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceSequenceT &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="find_all">find_all</fo:basic-link>(SequenceSequenceT &amp;, Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceSequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceSequenceT &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="ifind_all">ifind_all</fo:basic-link>(SequenceSequenceT &amp;, Collection1T &amp;, <fo:inline font-weight="bold">const</fo:inline> Collection2T &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceSequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceSequenceT &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id479732">split</fo:basic-link>(SequenceSequenceT &amp;, CollectionT &amp;, PredicateT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;token_compress_mode_type = token_compress_off);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="find_all"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template find_all</fo:block></fo:block><fo:block space-after="1em">Function template find_all <fo:inline font-family="serif">--</fo:inline> Find all algorithm. </fo:block><fo:block>boost::algorithm::find_all</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id588248"><fo:block/><fo:block id="id588249" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceSequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;SequenceSequenceT &amp; 
&#xA0;&#xA0;find_all(SequenceSequenceT &amp; Result, Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id588295"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This algorithm finds all occurrences of the search string in the input.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are <fo:inline font-family="monospace">std::vector&lt;std::string&gt;</fo:inline>  or <fo:inline font-family="monospace">std::list&lt;boost::iterator_range&lt;std::string::iterator&gt;&gt;</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id588325" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id588331" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A container which will be searched. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id588340" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Result</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A container that can hold copies of references to the substrings </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id588348" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id588357" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id588360" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A reference the result</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id588368" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Prior content of the result will be overwritten.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="ifind_all"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template ifind_all</fo:block></fo:block><fo:block space-after="1em">Function template ifind_all <fo:inline font-family="serif">--</fo:inline> Find all algorithm ( case insensitive ). </fo:block><fo:block>boost::algorithm::ifind_all</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id588400"><fo:block/><fo:block id="id588401" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceSequenceT, <fo:inline font-weight="bold">typename</fo:inline> Collection1T, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Collection2T&gt; 
&#xA0;&#xA0;SequenceSequenceT &amp; 
&#xA0;&#xA0;ifind_all(SequenceSequenceT &amp; Result, Collection1T &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> Collection2T &amp; Search, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id588457"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This algorithm finds all occurrences of the search string in the input. Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are <fo:inline font-family="monospace">std::vector&lt;std::string&gt;</fo:inline>  or <fo:inline font-family="monospace">std::list&lt;boost::iterator_range&lt;std::string::iterator&gt;&gt;</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Searching is case insensitive.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id588487" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id588493" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A container which will be searched. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id588501" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for case insensitive comparison </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id588509" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Result</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A container that can hold copies of references to the substrings </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id588518" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Search</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A substring to be searched for. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id588527" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id588530" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A reference the result</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id588538" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Prior content of the result will be overwritten.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id479732"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template split</fo:block></fo:block><fo:block space-after="1em">Function template split <fo:inline font-family="serif">--</fo:inline> Split algorithm. </fo:block><fo:block>boost::algorithm::split</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id588570"><fo:block/><fo:block id="id588571" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceSequenceT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;SequenceSequenceT &amp; 
&#xA0;&#xA0;split(SequenceSequenceT &amp; Result, CollectionT &amp; Input, PredicateT Pred, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;token_compress_mode_type eCompress = token_compress_off);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id588611"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Tokenize expression. This function is equivalent to C strtok. Input sequence is split into tokens, separated by separators. Separators are given by means of the predicate.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each part is copied and added as a new element to the output container. Thus the result container must be able to hold copies of the matches (in a compatible structure like std::string) or a reference to it (e.g. using the iterator range class). Examples of such a container are <fo:inline font-family="monospace">std::vector&lt;std::string&gt;</fo:inline>  or <fo:inline font-family="monospace">std::list&lt;boost::iterator_range&lt;std::string::iterator&gt;&gt;</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id588642" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id588649" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A container which will be searched. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id588657" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Pred</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A predicate to identify separators. This predicate is supposed to return true if a given element is a separator. </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id588667" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Result</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A container that can hold copies of references to the substrings </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id588676" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>eCompress</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If eCompress argument is set to token_compress_on, adjacent separators are merged together. Otherwise, every two separators delimit a token. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id588686" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id588689" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A reference the result</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id588697" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Prior content of the result will be overwritten.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id349546"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/std_containers_traits.hpp">boost/algorithm/string/std_containers_traits.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This file includes sequence traits for stl containers.</fo:block></fo:block><fo:block id="id299529"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string.hpp">boost/algorithm/string.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Cumulative include for string_algo library</fo:block></fo:block><fo:block id="id263316"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string_regex.hpp">boost/algorithm/string_regex.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Cumulative include for string_algo library. In addtion to string.hpp contains also regex-related stuff.</fo:block></fo:block><fo:block id="id263327"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/algorithm/string/trim.hpp">boost/algorithm/string/trim.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defines trim algorithms. Trim algorithms are used to remove trailing and leading spaces from a sequence (string). Space is recognized using given locales.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Parametric (<fo:inline font-family="monospace">_if</fo:inline> ) variants use a predicate (functor) to select which characters are to be trimmed.. Functions take a selection predicate as a parameter, which is used to determine whether a character is a space. Common predicates are provided in classification.hpp header.</fo:block><fo:block id="id588803" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> algorithm {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="trim_left_copy_if">trim_left_copy_if</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="trim_left_copy_if">trim_left_copy_if</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="trim_left_copy">trim_left_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="trim_left_if">trim_left_if</fo:basic-link>(SequenceT &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="trim_left">trim_left</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="trim_right_copy_if">trim_right_copy_if</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="trim_right_copy_if">trim_right_copy_if</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="trim_right_copy">trim_right_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="trim_right_if">trim_right_if</fo:basic-link>(SequenceT &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="trim_right">trim_right</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="trim_copy_if">trim_copy_if</fo:basic-link>(OutputIteratorT, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="trim_copy_if">trim_copy_if</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;SequenceT <fo:basic-link internal-destination="trim_copy">trim_copy</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="trim_if">trim_if</fo:basic-link>(SequenceT &amp;, PredicateT);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="trim">trim</fo:basic-link>(SequenceT &amp;, <fo:inline font-weight="bold">const</fo:inline> std::locale &amp; = std::locale());
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="trim_left_copy_if"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function trim_left_copy_if</fo:block></fo:block><fo:block space-after="1em">Function trim_left_copy_if <fo:inline font-family="serif">--</fo:inline> Left trim - parametric. </fo:block><fo:block>boost::algorithm::trim_left_copy_if</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id589468"><fo:block/><fo:block id="id589469" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;trim_left_copy_if(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;PredicateT IsSpace);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;SequenceT trim_left_copy_if(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, PredicateT IsSpace);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id589550"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all leading spaces from the input. The supplied predicate is used to determine which characters are considered spaces. The result is a trimmed copy of the input. It is returned as a sequence or copied to the output iterator</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id589562" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id589568" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input collection </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id589576" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>IsSpace</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An unary predicate identifying spaces </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id589584" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id589593" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id589596" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id589606" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="trim_left_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template trim_left_copy</fo:block></fo:block><fo:block space-after="1em">Function template trim_left_copy <fo:inline font-family="serif">--</fo:inline> Left trim - parametric. </fo:block><fo:block>boost::algorithm::trim_left_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id589635"><fo:block/><fo:block id="id589636" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;SequenceT trim_left_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id589675"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all leading spaces from the input. The result is a trimmed copy of the input.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id589684" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id589691" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id589699" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>a locale used for 'space' classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id589707" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id589711" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A trimmed copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id589719" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="trim_left_if"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template trim_left_if</fo:block></fo:block><fo:block space-after="1em">Function template trim_left_if <fo:inline font-family="serif">--</fo:inline> Left trim. </fo:block><fo:block>boost::algorithm::trim_left_if</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id589747"><fo:block/><fo:block id="id589748" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> trim_left_if(SequenceT &amp; Input, PredicateT IsSpace);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id589784"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all leading spaces from the input. The supplied predicate is used to determine which characters are considered spaces. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id589794" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id589801" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id589809" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>IsSpace</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An unary predicate identifying spaces </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="trim_left"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template trim_left</fo:block></fo:block><fo:block space-after="1em">Function template trim_left <fo:inline font-family="serif">--</fo:inline> Left trim. </fo:block><fo:block>boost::algorithm::trim_left</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id589836"><fo:block/><fo:block id="id589837" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> trim_left(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id589872"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all leading spaces from the input. The Input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id589882" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id589888" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id589896" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for 'space' classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="trim_right_copy_if"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function trim_right_copy_if</fo:block></fo:block><fo:block space-after="1em">Function trim_right_copy_if <fo:inline font-family="serif">--</fo:inline> Right trim - parametric. </fo:block><fo:block>boost::algorithm::trim_right_copy_if</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id589925"><fo:block/><fo:block id="id589926" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;trim_right_copy_if(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;PredicateT IsSpace);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;SequenceT trim_right_copy_if(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, PredicateT IsSpace);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590006"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all trailing spaces from the input. The supplied predicate is used to determine which characters are considered spaces. The result is a trimmed copy of the input. It is returned as a sequence or copied to the output iterator</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id590018" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id590024" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input collection </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590032" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>IsSpace</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An unary predicate identifying spaces </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590040" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id590049" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id590052" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590062" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="trim_right_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template trim_right_copy</fo:block></fo:block><fo:block space-after="1em">Function template trim_right_copy <fo:inline font-family="serif">--</fo:inline> Right trim. </fo:block><fo:block>boost::algorithm::trim_right_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590090"><fo:block/><fo:block id="id590091" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;SequenceT trim_right_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590130"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all trailing spaces from the input. The result is a trimmed copy of the input</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id590140" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id590146" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590154" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for 'space' classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id590162" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id590166" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A trimmed copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590174" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="trim_right_if"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template trim_right_if</fo:block></fo:block><fo:block space-after="1em">Function template trim_right_if <fo:inline font-family="serif">--</fo:inline> Right trim - parametric. </fo:block><fo:block>boost::algorithm::trim_right_if</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590203"><fo:block/><fo:block id="id590204" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> trim_right_if(SequenceT &amp; Input, PredicateT IsSpace);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590239"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all trailing spaces from the input. The supplied predicate is used to determine which characters are considered spaces. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id590250" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id590256" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590264" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>IsSpace</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An unary predicate identifying spaces </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="trim_right"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template trim_right</fo:block></fo:block><fo:block space-after="1em">Function template trim_right <fo:inline font-family="serif">--</fo:inline> Right trim. </fo:block><fo:block>boost::algorithm::trim_right</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590292"><fo:block/><fo:block id="id590293" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> trim_right(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590328"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all trailing spaces from the input. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id590337" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id590344" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590352" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for 'space' classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="trim_copy_if"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function trim_copy_if</fo:block></fo:block><fo:block space-after="1em">Function trim_copy_if <fo:inline font-family="serif">--</fo:inline> Trim - parametric. </fo:block><fo:block>boost::algorithm::trim_copy_if</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590380"><fo:block/><fo:block id="id590381" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> OutputIteratorT, <fo:inline font-weight="bold">typename</fo:inline> CollectionT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;OutputIteratorT 
&#xA0;&#xA0;trim_copy_if(OutputIteratorT Output, <fo:inline font-weight="bold">const</fo:inline> CollectionT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;PredicateT IsSpace);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;SequenceT trim_copy_if(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, PredicateT IsSpace);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590461"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all trailing and leading spaces from the input. The supplied predicate is used to determine which characters are considered spaces. The result is a trimmed copy of the input. It is returned as a sequence or copied to the output iterator</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id590473" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id590479" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input collection </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590487" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>IsSpace</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An unary predicate identifying spaces </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590496" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Output</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator to which the result will be copied </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id590504" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id590508" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An output iterator pointing just after the last inserted character or a copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590517" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The second variant of this function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="trim_copy"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template trim_copy</fo:block></fo:block><fo:block space-after="1em">Function template trim_copy <fo:inline font-family="serif">--</fo:inline> Trim. </fo:block><fo:block>boost::algorithm::trim_copy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590546"><fo:block/><fo:block id="id590547" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;SequenceT trim_copy(<fo:inline font-weight="bold">const</fo:inline> SequenceT &amp; Input, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590586"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all leading and trailing spaces from the input. The result is a trimmed copy of the input</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id590596" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id590602" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590610" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for 'space' classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:list-block id="id590618" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id590622" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A trimmed copy of the input</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590630" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This function provides the strong exception-safety guarantee </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="trim_if"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template trim_if</fo:block></fo:block><fo:block space-after="1em">Function template trim_if <fo:inline font-family="serif">--</fo:inline> Trim. </fo:block><fo:block>boost::algorithm::trim_if</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590657"><fo:block/><fo:block id="id590658" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT, <fo:inline font-weight="bold">typename</fo:inline> PredicateT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> trim_if(SequenceT &amp; Input, PredicateT IsSpace);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590694"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all leading and trailing spaces from the input. The supplied predicate is used to determine which characters are considered spaces. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id590705" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id590711" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590719" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>IsSpace</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An unary predicate identifying spaces </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="trim"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template trim</fo:block></fo:block><fo:block space-after="1em">Function template trim <fo:inline font-family="serif">--</fo:inline> Trim. </fo:block><fo:block>boost::algorithm::trim</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590745"><fo:block/><fo:block id="id590747" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> SequenceT&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> trim(SequenceT &amp; Input, <fo:inline font-weight="bold">const</fo:inline> std::locale &amp; Loc = std::locale());</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id590782"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remove all leading and trailing spaces from the input. The input sequence is modified in-place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Parameters</fo:block><fo:list-block id="id590791" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id590797" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Input</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>An input sequence </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590805" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Loc</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A locale used for 'space' classification </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="string_algo.rationale"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Rationale</fo:marker><fo:block font-size="17.28pt">Rationale</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id590829"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Locales</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Locales have a very close relation to string processing. They contain information about
            the character sets and are used, for example, to change the case of characters and 
            to classify the characters. 
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            C++ allows to work with multiple different instances of locales at once. If an algorithm
            manipulates some data in a way that requires the usage of locales, there must be a way
            to specify them. However, one instance of locales is sufficient for most of the applications,
            and for a user it could be very tedious to specify which locales to use at every place 
            where it is needed. 
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Fortunately, the C++ standard allows to specify the <fo:inline font-style="italic">global</fo:inline> locales (using static member
            function <fo:inline font-family="monospace">std:locale::global()</fo:inline>). When instantiating an
            <fo:inline font-family="monospace">std::locale</fo:inline> class without explicit information, the instance will 
            be initialized with the <fo:inline font-style="italic">global</fo:inline> locale. This implies, that if an algorithm needs a locale,
            it should have an <fo:inline font-family="monospace">std::locale</fo:inline> parameter defaulting to  <fo:inline font-family="monospace">std::locale()</fo:inline>.
            If a user needs to specify locales explicitly, she can do so. Otherwise the <fo:inline font-style="italic">global</fo:inline>
            locales are used.
        </fo:block></fo:block><fo:block id="string_algo.regex"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Regular Expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Regular expressions are an essential part of text processing. For this reason, the library 
            also provides regex variants of some algorithms. The library does not attempt to replace
            Boost.Regex; it merely wraps its functionality in a new interface.
            As a part of this library, regex algorithms integrate smoothly with other components, which 
            brings additional value.
        </fo:block></fo:block></fo:block><fo:block id="string_algo.env"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Environment</fo:marker><fo:block font-size="17.28pt">Environment</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id590941"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Build</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            The whole library is provided in headers. Regex variants of some algorithms, 
            however, are dependent on the Boost.Regex library. All such algorithms are
            separated in <fo:basic-link internal-destination="id263316">boost/algorithm/string_regex.hpp</fo:basic-link>. 
            If this header is used, the application must be linked with the Boost.Regex 
            library. 
        </fo:block></fo:block><fo:block id="id590962"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Examples</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Examples showing the basic usage of the library can be found in the libs/algorithm/string/example
            directory. There is a separate file for the each part of the library. Please follow the boost
            build guidelines to build examples using the bjam. To successfully build regex examples 
            the Boost.Regex library is required. 
        </fo:block></fo:block><fo:block id="id590975"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Tests</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            A full set of test cases for the library is located in the libs/algorithm/string/test directory. 
            The test cases can be executed using the boost build system. For the tests of regular 
            expression variants of algorithms, the Boost.Regex library is required. 
        </fo:block></fo:block><fo:block id="id590986"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Portability</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            The library has been successfully compiled and tested with the following compilers:
            
            <fo:list-block id="id590995" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id590996" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Microsoft Visual C++ 7.0</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id590999" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Microsoft Visual C++ 7.1</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591002" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>GCC 3.2</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591005" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>GCC 3.3.1</fo:block></fo:list-item-body></fo:list-item></fo:list-block>

            See <fo:basic-link external-destination="http://boost.sourceforge.net/regression-logs/">Boost regression tables</fo:basic-link>
            for additional info for a particular compiler.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            There are known limitation on platforms not supporting partial template specialization. 
            Library depends on correctly implemented <fo:inline font-family="monospace">std::iterator_traits</fo:inline> class. 
            If a standard library provided with compiler is broken, the String Algorithm Library 
            cannot function properly. Usually it implies that primitive pointer iterators are not 
            working with the library functions. 
        </fo:block></fo:block></fo:block><fo:block id="string_algo.credits"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Credits</fo:marker><fo:block font-size="17.28pt">Credits</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="string_algo.ack"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Acknowledgments</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            The author would like to thank everybody who gave suggestions and comments. Especially valuable
            were the contributions of Thorsten Ottosen, Jeff Garland and the other boost members who participated
            in the review process, namely David Abrahams, Daniel Frey, Beman Dawes, John Maddock, David B.Held, Pavel Vozenilek
            and many other.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            Additional thanks go to Stefan Slapeta and Toon Knapen, who have been very resourceful in solving various
            portability issues.
        </fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block><fo:inline font-weight="bold">Boost.Threads</fo:inline></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block><fo:inline font-weight="bold">Boost.Threads</fo:inline></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="threads"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:inline font-weight="bold">Boost.Threads</fo:inline></fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>William E. Kempf</fo:block></fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2001-2003 William E. Kempf</fo:block><fo:block><fo:block id="id591105"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Permission to use, copy, modify, distribute and sell this
      software and its documentation for any purpose is hereby granted
      without fee, provided that the above copyright notice appear in all
      copies and that both that copyright notice and this permission notice
      appear in supporting documentation. William E. Kempf makes no
      representations about the suitability of this software for any purpose.
      It is provided "as is" without express or implied warranty.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.overview"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Overview</fo:marker><fo:block font-size="17.28pt">Overview</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.introduction"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> allows C++ programs to execute as multiple,
    asynchronous, independent threads-of-execution. Each thread has its own
    machine state including program instruction counter and registers. Programs
    which execute as multiple threads are called multithreaded programs to
    distinguish them from traditional single-threaded programs. The <fo:basic-link internal-destination="threads.glossary">glossary</fo:basic-link> gives a more complete description
	of the multithreading execution environment.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Multithreading provides several advantages:
    <fo:list-block id="id591175" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id591177" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Programs which would otherwise block waiting for some external
        event can continue to respond if the blocking operation is placed in a
        separate thread. Multithreading is usually an absolute requirement for
        these programs.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591184" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Well-designed multithreaded programs may execute faster than
        single-threaded programs, particularly on multiprocessor hardware.
        Note, however, that poorly-designed multithreaded programs are often
        slower than single-threaded programs.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591193" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Some program designs may be easier to formulate using a
        multithreaded approach. After all, the real world is
        asynchronous!</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="id591199"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Dangers</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id591203"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">General considerations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Beyond the errors which can occur in single-threaded programs,
    multithreaded programs are subject to additional errors:
    <fo:list-block id="id591211" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id591212" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="threads.glossary.race-condition">Race
	    conditions</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591224" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="threads.glossary.deadlock">Deadlock</fo:basic-link>
        (sometimes called "deadly embrace")</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591238" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="threads.glossary.priority-failure">Priority
        failures</fo:basic-link> (priority inversion, infinite overtaking, starvation,
		etc.)</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Every multithreaded program must be designed carefully to avoid these
	errors. These aren't rare or exotic failures - they are virtually guaranteed
	to occur unless multithreaded code is designed to avoid them. Priority
	failures are somewhat less common, but are nonetheless serious.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="threads.design"><fo:inline font-weight="bold">Boost.Threads</fo:inline> design</fo:basic-link>
    attempts to minimize these errors, but they will still occur unless the
    programmer proactively designs to avoid them.</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id591277"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Note</fo:block><fo:block>Please also see <fo:basic-link internal-destination="threads.implementation_notes">the section called &#x201C;Implementation Notes&#x201D;</fo:basic-link>
	for additional, implementation-specific considerations.</fo:block></fo:block></fo:block><fo:block id="id591290"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Testing and debugging considerations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Multithreaded programs are non-deterministic. In other words, the
      same program with the same input data may follow different execution
      paths each time it is invoked. That can make testing and debugging a
      nightmare:
      <fo:list-block id="id591301" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id591302" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Failures are often not repeatable.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591306" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Probe effect causes debuggers to produce very different results
          from non-debug uses.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591312" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Debuggers require special support to show thread state.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591316" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Tests on a single processor system may give no indication of
          serious errors which would appear on multiprocessor systems, and visa
          versa. Thus test cases should include a varying number of
          processors.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591324" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>For programs which create a varying number of threads according
          to workload, tests which don't span the full range of possibilities
          may miss serious errors.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="id591331"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Getting a head start</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Although it might appear that multithreaded programs are inherently
      unreliable, many reliable multithreaded programs do exist. Multithreading
      techniques are known which lead to reliable programs.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Design patterns for reliable multithreaded programs, including the
      important <fo:inline font-style="italic">monitor</fo:inline> pattern, are presented in 
      <fo:inline font-style="italic">Pattern-Oriented Software Architecture Volume 2 - Patterns for
      Concurrent and Networked Objects</fo:inline>[<fo:basic-link internal-destination="threads.bib.SchmidtStalRohnertBuschmann">SchmidtStalRohnertBuschmann</fo:basic-link>]. Many important multithreading programming
	  considerations (independent of threading library) are discussed in
	  <fo:inline font-style="italic">Programming with POSIX Threads</fo:inline>[<fo:basic-link internal-destination="threads.bib.Butenhof97">Butenhof97</fo:basic-link>].</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Doing some reading before attempting multithreaded designs will
      give you a head start toward reliable multithreaded programs.</fo:block></fo:block></fo:block><fo:block id="id591397"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">C++ Standard Library usage in multithreaded programs</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id591402"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Runtime libraries</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Warning:</fo:inline> Multithreaded programs such as
	  those using <fo:inline font-weight="bold">Boost.Threads</fo:inline> must link to <fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link> versions of
	  all runtime libraries used by the program, including the runtime library
	  for the C++ Standard Library. Failure to do so will cause <fo:basic-link internal-destination="threads.glossary.race-condition">race conditions</fo:basic-link> to occur
	  when multiple threads simultaneously execute runtime library functions for
	  <fo:inline font-family="monospace">new</fo:inline>, <fo:inline font-family="monospace">delete</fo:inline>, or other language features which
	  imply shared state.</fo:block></fo:block><fo:block id="id591457"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Potentially non-thread-safe functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Certain C++ Standard Library functions inherited from C are
      particular problems because they hold internal state between
      calls:
      <fo:list-block id="id591466" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id591467" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">rand</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591475" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">strtok</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591482" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">asctime</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591490" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">ctime</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591497" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">gmtime</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591504" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">localtime</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It is possible to write thread-safe implementations of these by
      using thread specific storage (see
	  <fo:basic-link internal-destination="thread_specific_ptr">boost::thread_specific_ptr</fo:basic-link>), and several C++ 
	  compiler vendors do just that. The technique is well-know and is explained
	  in [<fo:basic-link internal-destination="threads.bib.Butenhof97">Butenhof97</fo:basic-link>].</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">But at least one vendor (HP-UX) does not provide thread-safe
      implementations of the above functions in their otherwise thread-safe
      runtime library. Instead they provide replacement functions with
      different names and arguments.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Recommendation:</fo:inline> For the most
	  portable, yet thread-safe code, use Boost replacements for the problem
	  functions. See the Boost Random Number Library
	  and Boost Tokenizer Library.</fo:block></fo:block></fo:block><fo:block id="id591558"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Common guarantees for all <fo:inline font-weight="bold">Boost.Threads</fo:inline> components</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id591568"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Exceptions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> destructors never
	  throw exceptions. Unless otherwise specified, other
	  <fo:inline font-weight="bold">Boost.Threads</fo:inline> functions that do not have
	  an exception-specification may throw implementation-defined
	  exceptions.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In particular, <fo:inline font-weight="bold">Boost.Threads</fo:inline>
	  reports failure to allocate storage by throwing an exception of type
	  <fo:inline font-family="monospace">std::bad_alloc</fo:inline> or a class derived from
	  <fo:inline font-family="monospace">std::bad_alloc</fo:inline>, failure to obtain thread resources other than
	  memory by throwing an exception of type
	  <fo:basic-link internal-destination="thread_resource_error">boost::thread_resource_error</fo:basic-link>, and certain lock
	  related failures by throwing an exception of type
	  <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Rationale:</fo:inline> Follows the C++ Standard
	  Library practice of allowing all functions except destructors or other
	  specified functions to throw exceptions on errors.</fo:block></fo:block><fo:block id="id591647"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">NonCopyable requirement</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> classes documented as
	  meeting the NonCopyable requirement disallow copy construction and copy
	  assignment. For the sake of exposition, the synopsis of such classes show
	  private derivation from boost::noncopyable. Users
	  should not depend on this derivation, however, as implementations are free
	  to meet the NonCopyable requirement in other ways.</fo:block></fo:block></fo:block></fo:block><fo:block id="threads.design"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Design</fo:marker><fo:block font-size="17.28pt">Design</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With client/server and three-tier architectures becoming common place
  in today's world, it's becoming increasingly important for programs to be
  able to handle parallel processing. Modern day operating systems usually
  provide some support for this through native thread APIs. Unfortunately,
  writing portable code that makes use of parallel processing in C++ is made
  very difficult by a lack of a standard interface for these native APIs.
  Further, these APIs are almost universally C APIs and fail to take
  advantage of C++'s strengths, or to address concepts unique to C++, such as
  exceptions.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-weight="bold">Boost.Threads</fo:inline> library is an attempt to define a portable interface
  for writing parallel processes in C++.</fo:block><fo:block id="threads.design.goals"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Goals</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-weight="bold">Boost.Threads</fo:inline> library has several goals that should help to set
	it apart from other solutions. These goals are listed in order of precedence
	with full descriptions below.
    <fo:list-block id="id591723" provisional-distance-between-starts="11em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id591724" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Portability</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Boost.Threads</fo:inline> was designed to be highly portable. The goal is
		  for the interface to be easily implemented on any platform that
		  supports threads, and possibly even on platforms without native thread
		  support.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591740" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Safety</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Boost.Threads</fo:inline> was designed to be as safe as possible. Writing
		  <fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link>
		  code is very difficult and successful libraries must strive to
		  insulate the programmer from dangerous constructs as much as
		  possible. This is accomplished in several ways:
          <fo:list-block id="id591766" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id591767" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>C++ language features are used to make correct usage easy
			  (if possible) and error-prone usage impossible or at least more
			  difficult. For example, see the <fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link> and <fo:basic-link internal-destination="threads.concepts.Lock">Lock</fo:basic-link> designs, and note
			  how they interact.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591795" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Certain traditional concurrent programming features are
			  considered so error-prone that they are not provided at all. For
			  example, see <fo:basic-link internal-destination="threads.rationale.events">the section called &#x201C;Rationale for not providing <fo:inline font-style="italic">Event Variables</fo:inline>&#x201D;</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591809" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Dangerous features, or features which may be misused, are
              identified as such in the documentation to make users aware of
              potential pitfalls.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591816" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Flexibility</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Boost.Threads</fo:inline> was designed to be flexible. This goal is often
		  at odds with <fo:inline font-style="italic">safety</fo:inline>. When functionality might be
		  compromised by the desire to keep the interface safe, <fo:inline font-weight="bold">Boost.Threads</fo:inline>
		  has been designed to provide the functionality, but to make it's use
		  prohibitive for general use. In other words, the interfaces have been
		  designed such that it's usually obvious when something is unsafe, and
		  the documentation is written to explain why.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id591847" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Efficiency</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Boost.Threads</fo:inline> was designed to be as efficient as
		  possible. When building a library on top of another library there is
		  always a danger that the result will be so much slower than the
		  "native" API that programmers are inclined to ignore the higher level
		  API. <fo:inline font-weight="bold">Boost.Threads</fo:inline> was designed to minimize the chances of this
		  occurring. The interfaces have been crafted to allow an implementation
		  the greatest chance of being as efficient as possible. This goal is
		  often at odds with the goal for <fo:inline font-style="italic">safety</fo:inline>. Every
		  effort was made to ensure efficient implementations, but when in
		  conflict <fo:inline font-style="italic">safety</fo:inline> has always taken
		  precedence.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="id591885"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Iterative Phases</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Another goal of <fo:inline font-weight="bold">Boost.Threads</fo:inline> was to take a dynamic, iterative
	approach in its development. The computing industry is still exploring the
	concepts of parallel programming. Most thread libraries supply only simple
	primitive concepts for thread synchronization. These concepts are very
	simple, but it is very difficult to use them safely or to provide formal
	proofs for constructs built on top of them. There has been a lot of research
	into other concepts, such as in "Communicating Sequential Processes."
	<fo:inline font-weight="bold">Boost.Threads</fo:inline> was designed in iterative steps, with each step providing 
	the building blocks necessary for the next step and giving the researcher 
	the tools necessary to explore new concepts in a portable manner.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Given the goal of following a dynamic, iterative approach
	<fo:inline font-weight="bold">Boost.Threads</fo:inline> shall go through several growth cycles. Each phase in its
	development shall be roughly documented here.</fo:block></fo:block><fo:block id="id591920"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Phase 1, Synchronization Primitives</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Boost is all about providing high quality libraries with
	implementations for many platforms. Unfortunately, there's a big problem
	faced by developers wishing to supply such high quality libraries, namely
	thread-safety. The C++ standard doesn't address threads at all, but real
	world programs often make use of native threading support. A portable
	library that doesn't address the issue of thread-safety is therefore not
	much help to a programmer who wants to use the library in his multithreaded
	application. So there's a very great need for portable primitives that will
	allow the library developer to create <fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link>
	implementations. This need far out weighs the need for portable methods to
	create and manage threads.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Because of this need, the first phase of <fo:inline font-weight="bold">Boost.Threads</fo:inline> focuses
	solely on providing portable primitive concepts for thread
	synchronization. Types provided in this phase include the
	<fo:basic-link internal-destination="mutex">boost::mutex</fo:basic-link>, 
	<fo:basic-link internal-destination="try_mutex">boost::try_mutex</fo:basic-link>,
	<fo:basic-link internal-destination="timed_mutex">boost::timed_mutex</fo:basic-link>, 
	<fo:basic-link internal-destination="recursive_mutex">boost::recursive_mutex</fo:basic-link>,
	<fo:basic-link internal-destination="recursive_try_mutex">boost::recursive_try_mutex</fo:basic-link>,
	<fo:basic-link internal-destination="recursive_timed_mutex">boost::recursive_timed_mutex</fo:basic-link>, and
	<fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>. These are considered the "core"
	synchronization primitives, though there are others that will be added in
	later phases.</fo:block></fo:block><fo:block id="threads.design.phase2"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Phase 2, Thread Management and Thread Specific Storage</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This phase addresses the creation and management of threads and
    provides a mechanism for thread specific storage (data associated with a
    thread instance). Thread management is a tricky issue in C++, so this
    phase addresses only the basic needs of multithreaded program. Later
    phases are likely to add additional functionality in this area. This
    phase of <fo:inline font-weight="bold">Boost.Threads</fo:inline> adds the <fo:basic-link internal-destination="thread">boost::thread</fo:basic-link> and
	<fo:basic-link internal-destination="thread_specific_ptr">boost::thread_specific_ptr</fo:basic-link> types. With these
	additions the <fo:inline font-weight="bold">Boost.Threads</fo:inline> library can be considered minimal but
	complete.</fo:block></fo:block><fo:block id="id592079"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">The Next Phase</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The next phase will address more advanced synchronization concepts,
    such as read/write mutexes and barriers.</fo:block></fo:block></fo:block><fo:block id="threads.concepts"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Concepts</fo:marker><fo:block font-size="17.28pt">Concepts</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> currently supports two types of mutex concepts:
	ordinary <fo:basic-link internal-destination="threads.concepts.mutexes">Mutexes</fo:basic-link>,
	which allow only one thread at a time to access a resource, and
	<fo:basic-link internal-destination="threads.concepts.read-write-mutexes">Read/Write Mutexes</fo:basic-link>,
	which allow only one thread at a time to access a resource when it is
	being modified (the "Write" part of Read/Write), but allows multiple threads
	to access a resource when it is only being referenced (the "Read" part of
	Read/Write).</fo:block><fo:block id="threads.concepts.mutexes"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Mutexes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id592147"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Note</fo:block><fo:block>Certain changes to the mutexes and lock concepts are
		currently under discussion. In particular, the combination of
		the multiple lock concepts into a single lock concept
		is likely, and the combination of the multiple mutex
		concepts into a single mutex concept is also possible.</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A mutex (short for mutual-exclusion) object is used to serialize
		access to a resource shared between multiple threads. The
		<fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link> concept, with
		<fo:basic-link internal-destination="threads.concepts.TryMutex">TryMutex</fo:basic-link> and
		<fo:basic-link internal-destination="threads.concepts.TimedMutex">TimedMutex</fo:basic-link> refinements,
		formalize the requirements. A model that implements Mutex and its
		refinements has two states: <fo:inline font-weight="bold">locked</fo:inline> and
		<fo:inline font-weight="bold">unlocked</fo:inline>. Before using a shared resource, a
		thread locks a <fo:inline font-weight="bold">Boost.Threads</fo:inline> mutex object
		(an object whose type is a model of
		<fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link> or one of it's
		refinements), ensuring
		<fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link> access to
		the shared resource. When use of the shared resource is complete, the thread
		unlocks the mutex object, allowing another thread to acquire the lock and
		use the shared resource.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Traditional C thread APIs, like POSIX threads or the Windows thread
		APIs, expose functions to lock and unlock a mutex object. This is dangerous
		since it's easy to forget to unlock a locked mutex. When the flow of control
		is complex, with multiple return points, the likelihood of forgetting to
		unlock a mutex object becomes even greater. When exceptions are thrown,
		it becomes nearly impossible to ensure that the mutex object is unlocked
		properly when using these traditional API's. The result is
		<fo:basic-link internal-destination="threads.glossary.deadlock">deadlock</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Many C++ threading libraries use a pattern known as <fo:inline font-style="italic">Scoped
		Locking</fo:inline>[<fo:basic-link internal-destination="threads.bib.SchmidtStalRohnertBuschmann">SchmidtStalRohnertBuschmann</fo:basic-link>] to free the programmer from
		the need to explicitly lock and unlock mutex objects. With this pattern, a
		<fo:basic-link internal-destination="threads.concepts.lock-concepts">Lock</fo:basic-link> concept is employed where
		the lock object's constructor locks the associated mutex object and the
		destructor automatically does the unlocking. The
		<fo:inline font-weight="bold">Boost.Threads</fo:inline> library takes this pattern to
		the extreme in that Lock concepts are the only way to lock and unlock a
		mutex object: lock and unlock functions are not exposed by any
		<fo:inline font-weight="bold">Boost.Threads</fo:inline> mutex objects. This helps to
		ensure safe usage patterns, especially when code throws exceptions.</fo:block><fo:block id="threads.concepts.locking-strategies"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Locking Strategies</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Every mutex object follows one of several locking strategies. These
			strategies define the semantics for the locking operation when the calling
			thread already owns a lock on the mutex object.</fo:block><fo:block id="threads.concepts.recursive-locking-strategy"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Recursive Locking Strategy</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With a recursive locking strategy, when a thread attempts to acquire
				a lock on the mutex object for which it already owns a lock, the operation
				is successful. Note the distinction between a thread, which may have
				multiple locks outstanding on a recursive mutex object, and a lock object,
				which even for a recursive mutex object cannot have any of its lock
				functions called multiple times without first calling unlock.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Internally a lock count is maintained and the owning thread must
				unlock the mutex object the same number of times that it locked it before
				the mutex object's state returns to unlocked. Since mutex objects in
				<fo:inline font-weight="bold">Boost.Threads</fo:inline> expose locking
				functionality only through lock concepts, a thread will always unlock a
				mutex object the same number of times that it locked it. This helps to
				eliminate a whole set of errors typically found in traditional C style
				thread APIs.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Classes <fo:basic-link internal-destination="recursive_mutex">boost::recursive_mutex</fo:basic-link>,
				<fo:basic-link internal-destination="recursive_try_mutex">boost::recursive_try_mutex</fo:basic-link> and
				<fo:basic-link internal-destination="recursive_timed_mutex">boost::recursive_timed_mutex</fo:basic-link> use this locking
				strategy.</fo:block></fo:block><fo:block id="threads.concepts.checked-locking-strategy"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Checked Locking Strategy</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With a checked locking strategy, when a thread attempts to acquire a
				lock on the mutex object for which the thread already owns a lock, the
				operation will fail with some sort of error indication. Further, attempts
				by a thread to unlock a mutex object that was not locked by the thread
				will also return some sort of error indication. In
				<fo:inline font-weight="bold">Boost.Threads</fo:inline>, an exception of type
				<fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link> 
				would be thrown in these cases.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> does not currently
				provide any mutex objects that use this strategy.</fo:block></fo:block><fo:block id="threads.concepts.unchecked-locking-strategy"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Unchecked Locking Strategy</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With an unchecked locking strategy, when a thread attempts to acquire
				a lock on a mutex object for which the thread already owns a lock the
				operation will
				<fo:basic-link internal-destination="threads.glossary.deadlock">deadlock</fo:basic-link>. In general
				this locking strategy is less safe than a checked or recursive strategy,
				but it's also a faster strategy and so is employed by many libraries.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> does not currently
				provide any mutex objects that use this strategy.</fo:block></fo:block><fo:block id="threads.concepts.unspecified-locking-strategy"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Unspecified Locking Strategy</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With an unspecified locking strategy, when a thread attempts to
				acquire a lock on a mutex object for which the thread already owns a lock
				the operation results in 
				<fo:basic-link internal-destination="threads.glossary.undefined-behavior">undefined behavior</fo:basic-link>.
				</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In general a mutex object with an unspecified locking strategy is
				unsafe, and it requires programmer discipline to use the mutex object
				properly. However, this strategy allows an implementation to be as fast as
				possible with no restrictions on its implementation. This is especially
				true for portable implementations that wrap the native threading support
				of a platform. For this reason, the classes
				<fo:basic-link internal-destination="mutex">boost::mutex</fo:basic-link>,
				<fo:basic-link internal-destination="try_mutex">boost::try_mutex</fo:basic-link> and
				<fo:basic-link internal-destination="timed_mutex">boost::timed_mutex</fo:basic-link> use this locking strategy
				despite the lack of safety.</fo:block></fo:block></fo:block><fo:block id="threads.concepts.sheduling-policies"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Scheduling Policies</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Every mutex object follows one of several scheduling policies. These
			policies define the semantics when the mutex object is unlocked and there is
			more than one thread waiting to acquire a lock. In other words, the policy
			defines which waiting thread shall acquire the lock.</fo:block><fo:block id="threads.concepts.FIFO-scheduling-policy"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">FIFO Scheduling Policy</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With a FIFO ("First In First Out") scheduling policy, threads waiting 
				for the lock will acquire it in a first-come-first-served order.
				This can help prevent a high priority thread from starving lower priority
				threads that are also waiting on the mutex object's lock.</fo:block></fo:block><fo:block id="threads.concepts.priority-driven-scheduling-policy"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Priority Driven Policy</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With a Priority Driven scheduling policy, the thread with the
				highest priority acquires the lock. Note that this means that low-priority
				threads may never acquire the lock if the mutex object has high contention
				and there is always at least one high-priority thread waiting. This is
				known as thread starvation. When multiple threads of the same priority are
				waiting on the mutex object's lock one of the other scheduling priorities
				will determine which thread shall acquire the lock.</fo:block></fo:block><fo:block id="threads.concepts.unspecified-scheduling-policy"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Unspecified Policy</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The mutex object does not specify a scheduling policy. In order to
				ensure portability, all <fo:inline font-weight="bold">Boost.Threads</fo:inline>
				mutex objects use an unspecified scheduling policy.</fo:block></fo:block></fo:block><fo:block id="threads.concepts.mutex-concepts"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Mutex Concepts</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.concepts.Mutex"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Mutex Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A Mutex object has two states: locked and unlocked. Mutex object
				state can only be determined by a lock object meeting the
				appropriate lock concept requirements
				and constructed for the Mutex object.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A Mutex is
				<fo:basic-link external-destination="../../libs/utility/utility.htm#Class%20noncopyable">
				NonCopyable</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For a Mutex type <fo:inline font-family="monospace">M</fo:inline>
				and an object <fo:inline font-family="monospace">m</fo:inline> of that type, 
				the following expressions must be well-formed
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id592664" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;1.&#xA0;Mutex Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>M m;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Constructs a mutex object m.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postcondition: m is unlocked.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>(&amp;m)-&gt;~M();</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Precondition: m is unlocked. Destroys a mutex object
								m.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>M::scoped_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>A model of
								<fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.TryMutex"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">TryMutex Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A TryMutex is a refinement of
				<fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link>. 
				For a TryMutex type <fo:inline font-family="monospace">M</fo:inline>
				and an object <fo:inline font-family="monospace">m</fo:inline> of that type, 
				the following expressions must be well-formed 
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id592749" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;2.&#xA0;TryMutex Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>M::scoped_try_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>A model of
								<fo:basic-link internal-destination="threads.concepts.ScopedTryLock">ScopedTryLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.TimedMutex"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">TimedMutex Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A TimedMutex is a refinement of
				<fo:basic-link internal-destination="threads.concepts.TryMutex">TryMutex</fo:basic-link>. 
				For a TimedMutex type <fo:inline font-family="monospace">M</fo:inline>
				and an object <fo:inline font-family="monospace">m</fo:inline> of that type, 
				the following expressions must be well-formed
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id592817" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;3.&#xA0;TimedMutex Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>M::scoped_timed_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>A model of
								<fo:basic-link internal-destination="threads.concepts.ScopedTimedLock">ScopedTimedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.concepts.mutex-models"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Mutex Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> currently supplies six models of
			<fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link>
			and its refinements.</fo:block><fo:block span="none"><fo:block id="id592877" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;4.&#xA0;Mutex Models</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Concept</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Refines</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Models</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="mutex">boost::mutex</fo:basic-link></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="recursive_mutex">boost::recursive_mutex</fo:basic-link></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TryMutex">TryMutex</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="try_mutex">boost::try_mutex</fo:basic-link></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="recursive_try_mutex">boost::recursive_try_mutex</fo:basic-link></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TimedMutex">TimedMutex</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TryMutex">TryMutex</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="timed_mutex">boost::timed_mutex</fo:basic-link></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="recursive_timed_mutex">boost::recursive_timed_mutex</fo:basic-link></fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.lock-concepts"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Lock Concepts</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A lock object provides a safe means for locking and unlocking a mutex
			object (an object whose type is a model of <fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link> or one of its refinements). In
			other words they are an implementation of the <fo:inline font-style="italic">Scoped
			Locking</fo:inline>[<fo:basic-link internal-destination="threads.bib.SchmidtStalRohnertBuschmann">SchmidtStalRohnertBuschmann</fo:basic-link>] pattern. The <fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link>,
			<fo:basic-link internal-destination="threads.concepts.ScopedTryLock">ScopedTryLock</fo:basic-link>, and 
			<fo:basic-link internal-destination="threads.concepts.ScopedTimedLock">ScopedTimedLock</fo:basic-link>
			concepts formalize the requirements.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Lock objects are constructed with a reference to a mutex object and
			typically acquire ownership of the mutex object by setting its state to
			locked. They also ensure ownership is relinquished in the destructor. Lock
			objects also expose functions to query the lock status and to manually lock
			and unlock the mutex object.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Lock objects are meant to be short lived, expected to be used at block
			scope only. The lock objects are not <fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link>. Lock objects must
			maintain state to indicate whether or not they've been locked and this state
			is not protected by any synchronization concepts. For this reason a lock
			object should never be shared between multiple threads.</fo:block><fo:block id="threads.concepts.Lock"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Lock Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For a Lock type <fo:inline font-family="monospace">L</fo:inline> 
				and an object <fo:inline font-family="monospace">lk</fo:inline> 
				and const object <fo:inline font-family="monospace">clk</fo:inline> of that type, 
				the following expressions must be well-formed
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id593120" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;5.&#xA0;Lock Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">(&amp;lk)-&gt;~L();</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">if (locked()) unlock();</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">(&amp;clk)-&gt;operator const void*()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Returns type void*, non-zero if the associated mutex
								object has been locked by <fo:inline font-family="monospace">clk</fo:inline>, otherwise 0.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">clk.locked()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Returns a <fo:inline font-family="monospace">bool</fo:inline>, <fo:inline font-family="monospace">(&amp;clk)-&gt;operator
								const void*() != 0</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.lock()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if <fo:inline font-family="monospace">locked()</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If the associated mutex object is
									already locked by some other thread, places the current thread in the 
									<fo:basic-link internal-destination="threads.glossary.thread-state">Blocked</fo:basic-link> state until
									the associated mutex is unlocked, after which the current thread
									is placed in the <fo:basic-link internal-destination="threads.glossary.thread-state">Ready</fo:basic-link> state,
									eventually to be returned to the <fo:basic-link internal-destination="threads.glossary.thread-state">Running</fo:basic-link> state. If
									the associated mutex object is already locked by the same thread
									the behavior is dependent on the <fo:basic-link internal-destination="threads.concepts.locking-strategies">locking
									strategy</fo:basic-link> of the associated mutex object.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postcondition: <fo:inline font-family="monospace">locked() == true</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.unlock()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if <fo:inline font-family="monospace">!locked()</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Unlocks the associated mutex.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postcondition: <fo:inline font-family="monospace">!locked()</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.ScopedLock"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">ScopedLock Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A ScopedLock is a refinement of <fo:basic-link internal-destination="threads.concepts.Lock">Lock</fo:basic-link>. 
				For a ScopedLock type <fo:inline font-family="monospace">L</fo:inline> 
				and an object <fo:inline font-family="monospace">lk</fo:inline> of that type, 
				and an object <fo:inline font-family="monospace">m</fo:inline> of a type meeting the 
				<fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link> requirements, 
				and an object <fo:inline font-family="monospace">b</fo:inline> of type <fo:inline font-family="monospace">bool</fo:inline>, 
				the following expressions must be well-formed 
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id593376" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;6.&#xA0;ScopedLock Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">L lk(m);</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Constructs an object <fo:inline font-family="monospace">lk</fo:inline>, and associates mutex
								object <fo:inline font-family="monospace">m</fo:inline> with it, then calls
								<fo:inline font-family="monospace">lock()</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">L lk(m,b);</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Constructs an object <fo:inline font-family="monospace">lk</fo:inline>, and associates mutex
								object <fo:inline font-family="monospace">m</fo:inline> with it, then if <fo:inline font-family="monospace">b</fo:inline>, calls
								<fo:inline font-family="monospace">lock()</fo:inline></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.TryLock"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">TryLock Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A TryLock is a refinement of <fo:basic-link internal-destination="threads.concepts.Lock">Lock</fo:basic-link>. 
				For a TryLock type <fo:inline font-family="monospace">L</fo:inline> 
				and an object <fo:inline font-family="monospace">lk</fo:inline> of that type, 
				the following expressions must be well-formed 
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id593491" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;7.&#xA0;TryLock Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.try_lock()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws  <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if locked().</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Makes a
									non-blocking attempt to lock the associated mutex object,
									returning <fo:inline font-family="monospace">true</fo:inline> if the lock attempt is successful,
									otherwise <fo:inline font-family="monospace">false</fo:inline>. If the associated mutex object is
									already locked by the same thread the behavior is dependent on the
									<fo:basic-link internal-destination="threads.concepts.locking-strategies">locking
									strategy</fo:basic-link> of the associated mutex object.</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.ScopedTryLock"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">ScopedTryLock Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A ScopedTryLock is a refinement of <fo:basic-link internal-destination="threads.concepts.TryLock">TryLock</fo:basic-link>. 
				For a ScopedTryLock type <fo:inline font-family="monospace">L</fo:inline> 
				and an object <fo:inline font-family="monospace">lk</fo:inline> of that type, 
				and an object <fo:inline font-family="monospace">m</fo:inline> of a type meeting the 
				<fo:basic-link internal-destination="threads.concepts.TryMutex">TryMutex</fo:basic-link> requirements, 
				and an object <fo:inline font-family="monospace">b</fo:inline> of type <fo:inline font-family="monospace">bool</fo:inline>, 
				the following expressions must be well-formed 
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id593625" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;8.&#xA0;ScopedTryLock Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">L lk(m);</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Constructs an object <fo:inline font-family="monospace">lk</fo:inline>, and associates mutex
								object <fo:inline font-family="monospace">m</fo:inline> with it, then calls
								<fo:inline font-family="monospace">try_lock()</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">L lk(m,b);</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Constructs an object <fo:inline font-family="monospace">lk</fo:inline>, and associates mutex
								object <fo:inline font-family="monospace">m</fo:inline> with it, then if <fo:inline font-family="monospace">b</fo:inline>, calls
								<fo:inline font-family="monospace">lock()</fo:inline></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.TimedLock"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">TimedLock Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A TimedLock is a refinement of <fo:basic-link internal-destination="threads.concepts.TryLock">TryLock</fo:basic-link>. 
				For a TimedLock type <fo:inline font-family="monospace">L</fo:inline> 
				and an object <fo:inline font-family="monospace">lk</fo:inline> of that type, 
				and an object <fo:inline font-family="monospace">t</fo:inline> of type <fo:basic-link internal-destination="xtime">boost::xtime</fo:basic-link>, 
				the following expressions must be well-formed 
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id593758" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;9.&#xA0;TimedLock Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.timed_lock(t)</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if locked().</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Makes a blocking attempt
									to lock the associated mutex object, and returns <fo:inline font-family="monospace">true</fo:inline>
									if successful within the specified time <fo:inline font-family="monospace">t</fo:inline>, otherwise
									<fo:inline font-family="monospace">false</fo:inline>. If the associated mutex object is already
									locked by the same thread the behavior is dependent on the <fo:basic-link internal-destination="threads.concepts.locking-strategies">locking
									strategy</fo:basic-link> of the associated mutex object.</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.ScopedTimedLock"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">ScopedTimedLock Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A ScopedTimedLock is a refinement of <fo:basic-link internal-destination="threads.concepts.TimedLock">TimedLock</fo:basic-link>. 
				For a ScopedTimedLock type <fo:inline font-family="monospace">L</fo:inline> 
				and an object <fo:inline font-family="monospace">lk</fo:inline> of that type, 
				and an object <fo:inline font-family="monospace">m</fo:inline> of a type meeting the 
				<fo:basic-link internal-destination="threads.concepts.TimedMutex">TimedMutex</fo:basic-link> requirements, 
				and an object <fo:inline font-family="monospace">b</fo:inline> of type <fo:inline font-family="monospace">bool</fo:inline>, 
				and an object <fo:inline font-family="monospace">t</fo:inline> of type <fo:basic-link internal-destination="xtime">boost::xtime</fo:basic-link>, 
				the following expressions must be well-formed 
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id593912" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;10.&#xA0;ScopedTimedLock Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">L lk(m,t);</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Constructs an object <fo:inline font-family="monospace">lk</fo:inline>, and associates mutex
								object <fo:inline font-family="monospace">m</fo:inline> with it, then calls
								<fo:inline font-family="monospace">timed_lock(t)</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">L lk(m,b);</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Constructs an object <fo:inline font-family="monospace">lk</fo:inline>, and associates mutex
								object <fo:inline font-family="monospace">m</fo:inline> with it, then if <fo:inline font-family="monospace">b</fo:inline>, calls
								<fo:inline font-family="monospace">lock()</fo:inline></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.concepts.lock-models"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Lock Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> currently supplies twelve models of
			<fo:basic-link internal-destination="threads.concepts.Lock">Lock</fo:basic-link>
			and its refinements.</fo:block><fo:block span="none"><fo:block id="id594020" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;11.&#xA0;Lock Models</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Concept</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Refines</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Models</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.Lock">Lock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.Lock">Lock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::mutex::scoped_lock</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::recursive_mutex::scoped_lock</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::try_mutex::scoped_lock</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::recursive_try_mutex::scoped_lock</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::timed_mutex::scoped_lock</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::recursive_timed_mutex::scoped_lock</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TryLock">TryLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.Lock">Lock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTryLock">ScopedTryLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TryLock">TryLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::try_mutex::scoped_try_lock</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::recursive_try_mutex::scoped_try_lock</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::timed_mutex::scoped_try_lock</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::recursive_timed_mutex::scoped_try_lock</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TimedLock">TimedLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TryLock">TryLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTimedLock">ScopedTimedLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TimedLock">TimedLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::timed_mutex::scoped_timed_lock</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::recursive_timed_mutex::scoped_timed_lock</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.concepts.read-write-mutexes"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Read/Write Mutexes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id594194"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Note</fo:block><fo:block>Since the read/write mutex and related classes are new,
		both interface and implementation are liable to change
		in future releases of <fo:inline font-weight="bold">Boost.Threads</fo:inline>.
		The lock concepts and lock promotion and demotion in particular 
		are still under discussion and very likely to change.</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A read/write mutex (short for reader/writer mutual-exclusion) object
		is used to serialize access to a resource shared between multiple 
		threads, where multiple "readers" can share simultaneous access, but 
		"writers" require exclusive access. The
		<fo:basic-link internal-destination="threads.concepts.ReadWriteMutex">ReadWriteMutex</fo:basic-link> concept, with 
		<fo:basic-link internal-destination="threads.concepts.TryReadWriteMutex">TryReadWriteMutex</fo:basic-link> and 
		<fo:basic-link internal-destination="threads.concepts.TimedReadWriteMutex"> TimedReadWriteMutex</fo:basic-link>
		refinements formalize the requirements. A model that implements 
		ReadWriteMutex and its refinements has three states: 
		<fo:inline font-weight="bold">read-locked</fo:inline>,
		<fo:inline font-weight="bold">write-locked</fo:inline>, and 
		<fo:inline font-weight="bold">unlocked</fo:inline>.
		Before reading from a shared resource, a thread 
		<fo:inline font-weight="bold">read-locks</fo:inline> 
		a <fo:inline font-weight="bold">Boost.Threads</fo:inline> read/write mutex object
		(an object whose type is a model of
		<fo:basic-link internal-destination="threads.concepts.ReadWriteMutex">ReadWriteMutex</fo:basic-link>
		or one of it's refinements), ensuring 
		<fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link>
		access for reading from the shared resource. Before writing 
		to a shared resource, a thread 
		<fo:inline font-weight="bold">write-locks</fo:inline> a <fo:inline font-weight="bold">Boost.Threads</fo:inline> 
		read/write mutex object
		(an object whose type is a model of
		<fo:basic-link internal-destination="threads.concepts.ReadWriteMutex">ReadWriteMutex</fo:basic-link>
		or one of it's refinements), ensuring 
		<fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link>
		access for altering the shared resource. When use of the shared 
		resource is complete, the thread unlocks the mutex object, 
		allowing another thread to acquire the lock and use the shared 
		resource.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Traditional C thread APIs that provide read/write mutex
		primitives (like POSIX threads) expose functions to lock and unlock a
		mutex object. This is dangerous since it's easy to forget to unlock a
		locked mutex. When the flow of control is complex, with multiple
		return points, the likelihood of forgetting to unlock a mutex object
		becomes even greater. When exceptions are thrown, it becomes nearly
		impossible to ensure that the mutex object is unlocked
		properly when using these traditional API's. The result is
		<fo:basic-link internal-destination="threads.glossary.deadlock">deadlock</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Many C++ threading libraries use a pattern known as <fo:inline font-style="italic">Scoped
		Locking</fo:inline>[<fo:basic-link internal-destination="threads.bib.SchmidtStalRohnertBuschmann">SchmidtStalRohnertBuschmann</fo:basic-link>] to free the
		programmer from the need to explicitly lock and unlock
		read/write mutex objects. With this  pattern, a 
		<fo:basic-link internal-destination="threads.concepts.read-write-lock-concepts">Read/Write Lock</fo:basic-link>
		concept is employed where the lock object's constructor locks
		the associated read/write mutex object
		and the destructor automatically does the unlocking. The
		<fo:inline font-weight="bold">Boost.Threads</fo:inline> library takes this pattern to
		the extreme in that 
		<fo:basic-link internal-destination="threads.concepts.read-write-lock-concepts">Read/Write Lock</fo:basic-link>
		concepts are the only way to lock and unlock a read/write mutex
		object: lock and unlock functions are not exposed by any
		<fo:inline font-weight="bold">Boost.Threads</fo:inline> read/write mutex objects. This helps to
		ensure safe usage patterns, especially when code throws exceptions.</fo:block><fo:block id="threads.concepts.read-write-locking-strategies"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Locking Strategies</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Every read/write mutex object follows one of several locking
			strategies. These strategies define the semantics for the locking
			operation when the calling thread already owns a lock on the 
			read/write mutex object.</fo:block><fo:block id="threads.concepts.read-write-locking-strategies.recursive"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Recursive Locking Strategy</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With a recursive locking strategy, when a thread attempts
				to acquire a lock on a read/write mutex object
				for which it already owns a lock, the operation is successful,
				except in the case where a thread holding a read-lock 
				attempts to obtain a write lock, in which case a
				<fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link> exception will
				be thrown. Note the distinction between a thread, which may have
				multiple locks outstanding on a recursive read/write mutex object,
				and a lock object, which even for a recursive read/write mutex
				object cannot have any of its lock functions called multiple
				times without first calling unlock.</fo:block><fo:block id="id594465" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Lock Type Held</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Lock Type Requested</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Action</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the read-lock immediately</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>If this thread is the only holder of the read-lock,
								grants the write lock immediately. Otherwise throws a
								<fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link> exception.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grants the (additional) read-lock immediately.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block> Grant the write-lock immediately</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Internally a lock count is maintained and the owning
				thread must unlock the mutex object the same number of times
				that it locked it before the mutex object's state returns
				to unlocked. Since mutex objects in <fo:inline font-weight="bold">Boost.Threads</fo:inline> expose
				locking functionality only through lock concepts, a thread
				will always unlock a mutex object the same number of times
				that it locked it. This helps to eliminate a whole set of
				errors typically found in traditional C style thread APIs.
				</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> does not currently provide any read/write mutex objects 
				that use this strategy.  A successful implementation of this locking strategy
				may require
				<fo:basic-link internal-destination="threads.concepts.read-write-locking-strategies.thread-identification">thread identification</fo:basic-link>.
				</fo:block></fo:block><fo:block id="threads.concepts.read-write-locking-strategies.checked"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Checked Locking Strategy</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With a checked locking strategy, when a thread attempts
				to acquire a lock on the mutex object for which the thread
				already owns a lock, the operation will fail with some sort of
				error indication, except in the case of multiple read-lock 
				acquisition which is a normal operation for ANY ReadWriteMutex.
				Further, attempts by a thread to unlock a mutex that was not
				locked by the thread will also return some sort of error
				indication. In <fo:inline font-weight="bold">Boost.Threads</fo:inline>, an exception of type 
				<fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link> would be thrown in
				these cases.</fo:block><fo:block id="id594610" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Lock Type Held</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Lock Type Requested</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Action</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the read-lock immediately</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Throw <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Throw <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block> Throw <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> does not currently provide any read/write mutex objects 
				that use this strategy.  A successful implementation of this locking strategy
				may require
				<fo:basic-link internal-destination="threads.concepts.read-write-locking-strategies.thread-identification">thread identification</fo:basic-link>.
				</fo:block></fo:block><fo:block id="threads.concepts.read-write-locking-strategies.unchecked"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Unchecked Locking Strategy</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With an unchecked locking strategy, when a thread
				attempts to acquire a lock on the read/write mutex object
				for which the thread already owns a lock, the operation 
				will <fo:basic-link internal-destination="threads.glossary.deadlock">deadlock</fo:basic-link>.
				In general this locking strategy is less safe than a checked
				or recursive strategy, but it can be a faster strategy and so
				is employed by many libraries.</fo:block><fo:block id="id594734" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Lock Type Held</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Lock Type Requested</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Action</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the read-lock immediately</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:basic-link internal-destination="threads.glossary.deadlock">Deadlock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:basic-link internal-destination="threads.glossary.deadlock">Deadlock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:basic-link internal-destination="threads.glossary.deadlock">Deadlock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> does not currently provide any mutex
				objects that use this strategy.  For ReadWriteMutexes on
				platforms that contain natively recursive synchronization
				primitives, implementing a guaranteed-deadlock can actually
				involve extra work, and would likely require 
				<fo:basic-link internal-destination="threads.concepts.read-write-locking-strategies.thread-identification">thread identification</fo:basic-link>.
				</fo:block></fo:block><fo:block id="threads.concepts.read-write-locking-strategies.unspecified"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Unspecified Locking Strategy</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With an unspecified locking strategy, when a thread
				attempts to acquire a lock on a read/write mutex object for
				which the thread already owns a lock, the operation results 
				in <fo:basic-link internal-destination="threads.glossary.undefined-behavior">undefined behavior</fo:basic-link>.
				When a read/write mutex object has an unspecified locking 
				strategy the programmer must assume that the read/write mutex
				object instead uses an unchecked strategy as the worse case,
				although some platforms may exhibit a mix of unchecked and
				recursive behavior.</fo:block><fo:block id="id594859" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Lock Type Held</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Lock Type Requested</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Action</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the read-lock immediately</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:basic-link internal-destination="threads.glossary.undefined-behavior">Undefined</fo:basic-link>, but generally <fo:basic-link internal-destination="threads.glossary.deadlock">deadlock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:basic-link internal-destination="threads.glossary.undefined-behavior">Undefined</fo:basic-link>, but generally <fo:basic-link internal-destination="threads.glossary.deadlock">deadlock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:basic-link internal-destination="threads.glossary.undefined-behavior">Undefined</fo:basic-link>, but generally <fo:basic-link internal-destination="threads.glossary.deadlock">deadlock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In general a read/write mutex object with an unspecified
				locking strategy is unsafe, and it requires programmer discipline
				to use the read/write mutex object properly. However, this strategy
				allows an implementation to be as fast as possible with no restrictions 
				on its implementation. This is especially true for portable implementations
				that wrap the native threading support of a platform. For this reason, the
				classes 
				read_write_mutex,
				try_read_write_mutex, and
				timed_read_write_mutex
				use this locking strategy despite the lack of safety.</fo:block></fo:block><fo:block id="threads.concepts.read-write-locking-strategies.thread-identification"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Thread Identification</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ReadWriteMutexes can support specific Locking Strategies 
				(recursive and checked) which help to detect and protect against
				self-deadlock.  Self-deadlock can occur when a holder of a locked
				ReadWriteMutex attempts to obtain another lock.  Given an
				implemention <fo:inline font-style="italic">I</fo:inline> which is susceptible to
				self-deadlock but otherwise correct and efficient, a recursive or
				checked implementation <fo:inline font-style="italic">Ir</fo:inline> or 
				<fo:inline font-style="italic">Ic</fo:inline> can use the same basic implementation,
				but make special checks against self-deadlock by tracking the
				identities of thread(s) currently holding locks.  This approach 
				makes deadlock detection othrogonal to the basic ReadWriteMutex
				implementaion.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Alternatively, a different basic implementation for 
				ReadWriteMutex concepts, 
				<fo:inline font-style="italic">I'</fo:inline> (I-Prime) may exist which uses recursive
				or checked versions of synchronization primitives to produce
				a recursive or checked ReadWriteMutex while still providing
				flexibility in terms of Scheduling Policies. </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Please refer to the <fo:inline font-weight="bold">Boost.Threads</fo:inline><fo:basic-link internal-destination="threads.concepts.read-write-mutex-concepts">read/write mutex concept</fo:basic-link> 
				documentation for a discussion of locking strategies.
				The read/write mutex supports only the
				<fo:basic-link internal-destination="threads.concepts.read-write-locking-strategies.unspecified">unspecified</fo:basic-link>
				locking strategy. ReadWriteMutexes are parameterized on a
				Mutex type which they use to control write-locking 
				and access to internal state.</fo:block></fo:block><fo:block id="threads.concepts.read-write-locking-strategies.promotion"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Lock Promotion</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ReadWriteMutexes can support lock promotion, where a
				mutex which is in the read-locked state transitions to a
				write-locked state without releasing the lock. Lock
				promotion can be tricky to implement; for instance,
				extra care must be taken to ensure that only one thread holding a
				read-lock can block awaiting promotion at any given time.  If
				more than one read-lock holder is allowed to enter a blocked
				state while waiting to be promoted, deadlock will result since
				both threads will be waiting for the other to release their read-lock.
				</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Currently, <fo:inline font-weight="bold">Boost.Threads</fo:inline> supports lock promotion
				through <fo:inline font-family="monospace">promote()</fo:inline>, <fo:inline font-family="monospace">try_promote()</fo:inline>,
				and <fo:inline font-family="monospace">timed_promote()</fo:inline> operations.</fo:block></fo:block><fo:block id="threads.concepts.read-write-locking-strategies.demotion"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Lock Demotion</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ReadWriteMutexes can support lock demotion, where a
				mutex which is in the write-locked state transitions to a
				read-locked state without releasing the lock.
				Since by definition only one thread at a time may hold
				a write-lock, the problem with deadlock that can occur
				during lock promotion is not a problem for lock
				demotion.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Currently, <fo:inline font-weight="bold">Boost.Threads</fo:inline> supports lock demotion
				through <fo:inline font-family="monospace">demote()</fo:inline>, <fo:inline font-family="monospace">try_demote()</fo:inline>,
				and <fo:inline font-family="monospace">timed_demote()</fo:inline> operations.</fo:block></fo:block></fo:block><fo:block id="threads.concepts.read-write-scheduling-policies"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Scheduling Policies</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Every read/write mutex object follows one of several scheduling
			policies. These policies define the semantics when the mutex object
			is unlocked and there is more than one thread waiting to acquire a
			lock. In other words, the policy defines which waiting thread shall
			acquire the lock. For a read/write mutex, it is particularly important
			to define the behavior when threads are requesting both read and
			write access simultaneously. This will be referred to as "inter-class 
			scheduling" because it describes the scheduling between two
			classes of threads (those waiting for a read lock and those
			waiting for a write lock).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For some types of inter-class scheduling, an "intra-class"
			scheduling policy can also be defined that will describe the order
			in which waiting threads of the same class (i.e., those
			waiting for the same type of lock) will acquire the thread.
			</fo:block><fo:block id="threads.concepts.read-write-scheduling-policies.inter-class"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Inter-Class Scheduling Policies</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.concepts.read-write-scheduling-policies.reader-priority"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">ReaderPriority</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With ReaderPriority scheduling, any pending request for
					a read-lock will have priority over a pending request for a
					write-lock, irrespective of the current lock state of the 
					read/write mutex, and irrespective of the relative order
					that the pending requests arrive.</fo:block><fo:block id="id595215" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Current mutex state</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Request Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Action</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>unlocked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the read-lock immediately</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the additional read-lock immediately.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Wait to acquire the lock until the thread
									holding the write-lock releases its lock (or until
									the specified time, if any). A
									read-lock will be granted to all pending readers 
									before any other thread can acquire a write-lock.
									<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>unlocked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the write-lock immediately, if and
									only if there are no pending read-lock requests.
									<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block> Wait to acquire the lock until all
									threads holding read-locks release their locks 
									<fo:inline font-weight="bold">AND</fo:inline> no requests
									for read-locks exist. If other write-lock
									requests exist, the lock is granted in accordance
									with the intra-class scheduling policy.
									<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Wait to acquire the lock until the thread
									holding the write-lock releases its lock
									<fo:inline font-weight="bold">AND</fo:inline> no requests
									for read-locks exist. If other write-lock
									requests exist, the lock is granted in accordance
									with the intra-class scheduling policy.
									<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>promote</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>demote</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.read-write-scheduling-policies.writer-priority"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">WriterPriority</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With WriterPriority scheduling, any pending request
					for a write-lock will have priority over a pending request
					for a read-lock, irrespective of the current lock state 
					of the read/write mutex, and irrespective of the relative
					order that the pending requests arrive.</fo:block><fo:block id="id595369" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Current mutex state</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Request Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Action</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>unlocked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the read-lock immediately.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the additional read-lock immediately, 
									<fo:inline font-weight="bold">IF</fo:inline> no outstanding
									requests for a write-lock exist; otherwise TODO.
									<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block> Wait to acquire the lock until the
									thread holding the write-lock 
									releases its lock. The read lock will be granted
									once no other outstanding write-lock requests
									exist.
									<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>unlocked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the write-lock immediately.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Wait to acquire the lock until all
									threads holding read-locks release their locks.
									If other write-lock requests exist, the lock
									is granted in accordance with the intra-class
									scheduling policy. This request will be granted
									before any new read-lock requests are granted.
									<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Wait to acquire the lock until the thread
									holding the write-lock releases its lock. If
									other write-lock requests exist, the lock is
									granted in accordance with the intra-class
									scheduling policy. This request will be granted
									before any new read-lock requests are granted.
									<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>promote</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>demote</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.read-write-scheduling-policies.alternating-many-reads"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">AlternatingPriority/ManyReads</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With AlternatingPriority/ManyReads scheduling, reader
					or writer starvation is avoided by alternatively granting read
					or write access when pending requests exist for both types of
					locks. Outstanding read-lock requests are treated as a group
					when it is the "readers' turn"</fo:block><fo:block id="id595517" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Current mutex state</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Request Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Action</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>unlocked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the read-lock immediately.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the additional read-lock immediately,
									<fo:inline font-weight="bold">IF</fo:inline> no outstanding 
									requests for a write-lock exist. If outstanding
									write-lock requests exist, this lock will not
									be granted until at least one of the 
									write-locks is granted and released. If other
									read-lock requests exist, all read-locks will be
									granted as a group.
									<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block> Wait to acquire the lock until the thread
									holding the write-lock releases its lock. If other
									outstanding write-lock requests exist, they will
									have to wait until all current read-lock requests
									are serviced.
									<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>unlocked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the write-lock immediately.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Wait to acquire the lock until all threads
									holding read-locks release their locks.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If other write-lock requests exist, this
									lock will be granted to one of them in accordance
									with the intra-class scheduling policy.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Wait to acquire the lock until the thread
									holding the write-lock releases its lock.  If
									other outstanding read-lock requests exist, this
									lock will not be granted until all of the
									currently waiting read-locks are granted and
									released. If other write-lock requests exist,
									this lock will be granted in accordance with the
									intra-class scheduling policy.
									<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>promote</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>demote</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.read-write-scheduling-policies.alternating-single-read"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">AlternatingPriority/SingleRead</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With AlternatingPriority/SingleRead scheduling, reader
					or writer starvation is avoided by alternatively granting read
					or write access when pending requests exist for both types of
					locks. Outstanding read-lock requests are services one at a
					time when it is the "readers' turn"</fo:block><fo:block id="id595675" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Current mutex state</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Request Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Action</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>unlocked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the read-lock immediately.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the additional read-lock immediately,
									<fo:inline font-weight="bold">IF</fo:inline> no outstanding 
									requests for a write-lock exist. If outstanding
									write-lock requests exist, this lock will not
									be granted until at least one of the write-locks
									is granted and released.
									<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Wait to acquire the lock until the thread
									holding the write-lock releases its lock.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If other outstanding write-lock requests
									exist, exactly one read-lock request will be
									granted before the next write-lock is granted.
									</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>unlocked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Grant the write-lock immediately.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Wait to acquire the lock until all
									threads holding read-locks release their 
									locks.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If other write-lock requests exist,
									this lock will be granted to one of them
									in accordance with the intra-class
									scheduling policy.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Wait to acquire the lock until the
									thread holding the write-lock releases its
									lock.  If other outstanding read-lock requests
									exist, this lock can not be granted until
									exactly one read-lock request is granted and
									released. If other write-lock requests exist,
									this lock will be granted in accordance with
									the intra-class scheduling policy.
									<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO: try-lock, timed-lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>read-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>promote</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>write-locked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>demote</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">TODO</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.concepts.read-write-scheduling-policies.intra-class"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Intra-Class Scheduling Policies</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Please refer to 
				<fo:basic-link internal-destination="threads.concepts.sheduling-policies">the section called &#x201C;Scheduling Policies&#x201D;</fo:basic-link>
				for a discussion of mutex scheduling policies, which are identical to 
				read/write mutex intra-class scheduling policies.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For threads waiting to obtain write-locks, the read/write mutex
				supports only the 
				<fo:basic-link internal-destination="threads.concepts.unspecified-scheduling-policy">Unspecified</fo:basic-link>
				intra-class scheduling policy. That is, given a set of threads
				waiting for write-locks, the order, relative to one another, in
				which they receive the write-lock is unspecified.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For threads waiting to obtain read-locks, the read/write mutex
				supports only the 
				<fo:basic-link internal-destination="threads.concepts.unspecified-scheduling-policy">Unspecified</fo:basic-link>
				intra-class scheduling policy. That is, given a set of threads
				waiting for read-locks, the order, relative to one another, in
				which they receive the read-lock is unspecified.</fo:block></fo:block></fo:block><fo:block id="threads.concepts.read-write-mutex-concepts"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Mutex Concepts</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.concepts.ReadWriteMutex"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">ReadWriteMutex Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A ReadWriteMutex object has three states: read-locked,
				write-locked, and unlocked. ReadWriteMutex object state can
				only be determined by a lock object meeting the appropriate lock concept
				requirements and constructed for the ReadWriteMutex object.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A ReadWriteMutex is 
				<fo:basic-link external-destination="../../libs/utility/utility.htm#Class%20noncopyable">NonCopyable</fo:basic-link>.
				</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For a ReadWriteMutex type <fo:inline font-family="monospace">M</fo:inline>, 
				and an object <fo:inline font-family="monospace">m</fo:inline> of that type, 
				the following expressions must be well-formed 
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id595932" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;12.&#xA0;ReadWriteMutex Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">M m;</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Constructs a read/write mutex object <fo:inline font-family="monospace">m</fo:inline>.
								Post-condition: <fo:inline font-family="monospace">m</fo:inline> is unlocked.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">(&amp;m)-&gt;~M();</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Precondition: <fo:inline font-family="monospace">m</fo:inline> is unlocked. 
								Destroys a read/write mutex object <fo:inline font-family="monospace">m</fo:inline>.
								</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">M::scoped_read_write_lock</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A type meeting the 
								<fo:basic-link internal-destination="threads.concepts.ScopedReadWriteLock">ScopedReadWriteLock</fo:basic-link>
								requirements. </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">M::scoped_read_lock</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A type meeting the 
								<fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link>
								requirements. </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">M::scoped_write_lock</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>A type meeting the 
								<fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link>
								requirements. </fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.TryReadWriteMutex"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">TryReadWriteMutex Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A TryReadWriteMutex is a refinement of
				<fo:basic-link internal-destination="threads.concepts.ReadWriteMutex">ReadWriteMutex</fo:basic-link>.
				For a TryReadWriteMutex type <fo:inline font-family="monospace">M</fo:inline> 
				and an object <fo:inline font-family="monospace">m</fo:inline> of that type,
				the following expressions must be well-formed 
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id596094" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;13.&#xA0;TryReadWriteMutex Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">M::scoped_try_read_write_lock</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A type meeting the 
								<fo:basic-link internal-destination="threads.concepts.ScopedTryReadWriteLock">ScopedTryReadWriteLock</fo:basic-link>
								requirements.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">M::scoped_try_read_lock</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A type meeting the 
								<fo:basic-link internal-destination="threads.concepts.ScopedTryLock">ScopedTryLock</fo:basic-link>
								requirements.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">M::scoped_try_write_lock</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>A type meeting the 
								<fo:basic-link internal-destination="threads.concepts.ScopedTryLock">ScopedTryLock</fo:basic-link>
								requirements.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.TimedReadWriteMutex"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">TimedReadWriteMutex Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A TimedReadWriteMutex is a refinement of
				<fo:basic-link internal-destination="threads.concepts.TryReadWriteMutex">TryReadWriteMutex</fo:basic-link>.
				For a TimedReadWriteMutex type <fo:inline font-family="monospace">M</fo:inline> 
				and an object <fo:inline font-family="monospace">m</fo:inline> of that type
				the following expressions must be well-formed 
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id596209" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;14.&#xA0;TimedReadWriteMutex Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">M::scoped_timed_read_write_lock</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A type meeting the 
								<fo:basic-link internal-destination="threads.concepts.ScopedTimedReadWriteLock">ScopedTimedReadWriteLock</fo:basic-link> 
								requirements.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">M::scoped_timed_read_lock</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A type meeting the 
								<fo:basic-link internal-destination="threads.concepts.ScopedTimedLock">ScopedTimedLock</fo:basic-link> 
								requirements.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">M::scoped_timed_write_lock</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>A type meeting the 
								<fo:basic-link internal-destination="threads.concepts.ScopedTimedLock">ScopedTimedLock</fo:basic-link> 
								requirements.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.concepts.read-write-mutex-models"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Mutex Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> currently supplies three models of
			<fo:basic-link internal-destination="threads.concepts.ReadWriteMutex">ReadWriteMutex</fo:basic-link>
			and its refinements.</fo:block><fo:block span="none"><fo:block id="id596316" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;15.&#xA0;Mutex Models</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Concept</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Refines</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Models</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.ReadWriteMutex">ReadWriteMutex</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:basic-link internal-destination="read_write_mutex">boost::read_write_mutex</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TryReadWriteMutex">TryReadWriteMutex</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.ReadWriteMutex">ReadWriteMutex</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:basic-link internal-destination="try_read_write_mutex">boost::try_read_write_mutex</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TimedReadWriteMutex">TimedReadWriteMutex</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TryReadWriteMutex">TryReadWriteMutex</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:basic-link internal-destination="timed_read_write_mutex">boost::timed_read_write_mutex</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.read-write-lock-concepts"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Lock Concepts</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A read/write lock object provides a safe means for locking
			and unlocking a read/write mutex object (an object whose type is
			a model of 
			<fo:basic-link internal-destination="threads.concepts.ReadWriteMutex">ReadWriteMutex</fo:basic-link> 
			or one of its refinements). In other words they are an
			implementation of the <fo:inline font-style="italic">Scoped Locking</fo:inline>[<fo:basic-link internal-destination="threads.bib.SchmidtStalRohnertBuschmann">SchmidtStalRohnertBuschmann</fo:basic-link>] pattern. The 
			<fo:basic-link internal-destination="threads.concepts.ScopedReadWriteLock">ScopedReadWriteLock</fo:basic-link>, 
			<fo:basic-link internal-destination="threads.concepts.ScopedTryReadWriteLock">ScopedTryReadWriteLock</fo:basic-link>, and 
			<fo:basic-link internal-destination="threads.concepts.ScopedTimedReadWriteLock">ScopedTimedReadWriteLock</fo:basic-link>
			concepts formalize the requirements.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Read/write lock objects are constructed with a reference to a
			read/write mutex object and typically acquire ownership of the 
			read/write mutex object by setting its state to locked. They also
			ensure ownership is relinquished in the destructor. Lock objects
			also expose functions to query the lock status and to manually lock
			and unlock the read/write mutex object.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Read/write lock objects are meant to be short lived, expected
			to be used at block scope only. The read/write lock objects are not 
			<fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link>.
			Read/write lock objects must maintain state to indicate whether or
			not they've been locked and this state is not protected by any
			synchronization concepts. For this reason a read/write lock object
			should never be shared between multiple threads.</fo:block><fo:block id="threads.concepts.ReadWriteLock"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">ReadWriteLock Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For a read/write lock type <fo:inline font-family="monospace">L</fo:inline>
				and an object <fo:inline font-family="monospace">lk</fo:inline> 
				and const object <fo:inline font-family="monospace">clk</fo:inline> of that type,
				the following expressions must be well-formed
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id596543" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;16.&#xA0;ReadWriteLock Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">(&amp;lk)-&gt;~L();</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:inline font-family="monospace">if (locked()) unlock();</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">(&amp;clk)-&gt;operator const void*()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Returns type void*, non-zero if the associated read/write
								mutex object has been either read-locked or write-locked by 
								<fo:inline font-family="monospace">clk</fo:inline>, otherwise 0.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">clk.locked()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Returns a <fo:inline font-family="monospace">bool</fo:inline>, <fo:inline font-family="monospace">(&amp;clk)-&gt;operator
								const void*() != 0</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">clk.state()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Returns an enumeration constant of type <fo:inline font-family="monospace">read_write_lock_state</fo:inline>:
								<fo:inline font-family="monospace">read_write_lock_state::read_locked</fo:inline> if the associated read/write mutex object has been
								read-locked by <fo:inline font-family="monospace">clk</fo:inline>, <fo:inline font-family="monospace">read_write_lock_state::write_locked</fo:inline> if it
								has been write-locked by <fo:inline font-family="monospace">clk</fo:inline>, and <fo:inline font-family="monospace">read_write_lock_state::unlocked</fo:inline>
								if has not been locked by <fo:inline font-family="monospace">clk</fo:inline>.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">clk.read_locked()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Returns a <fo:inline font-family="monospace">bool</fo:inline>, <fo:inline font-family="monospace">(&amp;clk)-&gt;state() == read_write_lock_state::read_locked</fo:inline>.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">clk.write_locked()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Returns a <fo:inline font-family="monospace">bool</fo:inline>, <fo:inline font-family="monospace">(&amp;clk)-&gt;state() == read_write_lock_state::write_locked</fo:inline>.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.read_lock()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link> 
									if <fo:inline font-family="monospace">locked()</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If the associated read/write mutex
									object is already read-locked by some other
									thread, the effect depends on the
									<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.inter-class">inter-class scheduling policy</fo:basic-link>
									of the associated read/write mutex:
									either immediately obtains an additional
									read-lock on the associated read/write
									mutex, or places the current thread in the
									<fo:basic-link internal-destination="threads.glossary.thread-state">Blocked</fo:basic-link>
									state until the associated read/write mutex
									is unlocked, after which the current thread
									is placed in the 
									<fo:basic-link internal-destination="threads.glossary.thread-state">Ready</fo:basic-link>
									state, eventually to be returned to the 
									<fo:basic-link internal-destination="threads.glossary.thread-state">Running</fo:basic-link>
									state.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If the associated read/write mutex
									object is already write-locked by some other
									thread, places the current thread in the
									<fo:basic-link internal-destination="threads.glossary.thread-state">Blocked</fo:basic-link>
									state until the associated read/write mutex
									is unlocked, after which the current thread
									is placed in the 
									<fo:basic-link internal-destination="threads.glossary.thread-state">Ready</fo:basic-link>
									state, eventually to be returned to the
									<fo:basic-link internal-destination="threads.glossary.thread-state">Running</fo:basic-link>
									state.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If the associated read/write mutex
									object is already locked by the same thread
									the behavior is dependent on the
									<fo:basic-link internal-destination="threads.concepts.read-write-locking-strategies">locking strategy</fo:basic-link>
									of the associated read/write mutex object.
									</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postcondition: <fo:inline font-family="monospace">state() == read_write_lock_state::read_locked</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.write_lock()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link> 
									if <fo:inline font-family="monospace">locked()</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If the associated read/write mutex
									object is already locked by some other
									thread, places the current thread in the
									<fo:basic-link internal-destination="threads.glossary.thread-state">Blocked</fo:basic-link>
									state until the associated read/write mutex
									is unlocked, after which the current thread
									is placed in the 
									<fo:basic-link internal-destination="threads.glossary.thread-state">Ready</fo:basic-link>
									state, eventually to be returned to the
									<fo:basic-link internal-destination="threads.glossary.thread-state">Running</fo:basic-link>
									state.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If the associated read/write mutex
									object is already locked by the same thread
									the behavior is dependent on the
									<fo:basic-link internal-destination="threads.concepts.read-write-locking-strategies">locking strategy</fo:basic-link>
									of the associated read/write mutex object.
									</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postcondition: <fo:inline font-family="monospace">state() == read_write_lock_state::write_locked</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.demote()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if <fo:inline font-family="monospace">state() != read_write_lock_state::write_locked</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Converts the lock held on the associated read/write mutex
									object from a write-lock to a read-lock without releasing
									the lock.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postcondition: <fo:inline font-family="monospace">state() == read_write_lock_state::read_locked</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.promote()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if <fo:inline font-family="monospace">state() != read_write_lock_state::read_locked</fo:inline>
									or if the lock cannot be promoted because another lock
									on the same mutex is already waiting to be promoted.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Makes a blocking attempt to convert the lock held on the associated
									read/write mutex object from a read-lock to a write-lock without releasing
									the lock.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.unlock()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if <fo:inline font-family="monospace">!locked()</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Unlocks the associated read/write mutex.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postcondition: <fo:inline font-family="monospace">!locked()</fo:inline></fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.ScopedReadWriteLock"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">ScopedReadWriteLock Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A ScopedReadWriteLock is a refinement of 
				<fo:basic-link internal-destination="threads.concepts.ReadWriteLock">ReadWriteLock</fo:basic-link>. 
				For a ScopedReadWriteLock type <fo:inline font-family="monospace">L</fo:inline> 
				and an object <fo:inline font-family="monospace">lk</fo:inline> of that type,
				and an object <fo:inline font-family="monospace">m</fo:inline> of a type meeting the 
				<fo:basic-link internal-destination="threads.concepts.ReadWriteMutex">ReadWriteMutex</fo:basic-link> requirements,
				and an object <fo:inline font-family="monospace">s</fo:inline> of type <fo:inline font-family="monospace">read_write_lock_state</fo:inline>,
				the following expressions must be well-formed 
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id597128" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;17.&#xA0;ScopedReadWriteLock Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">L lk(m,s);</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Constructs an object <fo:inline font-family="monospace">lk</fo:inline> and associates read/write mutex
								object <fo:inline font-family="monospace">m</fo:inline> with it, then: if <fo:inline font-family="monospace">s == read_write_lock_state::read_locked</fo:inline>, calls
								<fo:inline font-family="monospace">read_lock()</fo:inline>; if <fo:inline font-family="monospace">s==read_write_lock_state::write_locked</fo:inline>,
								calls <fo:inline font-family="monospace">write_lock()</fo:inline>.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.TryReadWriteLock"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">TryReadWriteLock Expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A TryReadWriteLock is a refinement of 
				<fo:basic-link internal-destination="threads.concepts.ReadWriteLock">ReadWriteLock</fo:basic-link>.
				For a TryReadWriteLock type <fo:inline font-family="monospace">L</fo:inline>
				and an object <fo:inline font-family="monospace">lk</fo:inline> of that type,
				the following expressions must be well-formed
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id597233" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;18.&#xA0;TryReadWriteLock Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.try_read_lock()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if locked().</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Makes a non-blocking attempt to read-lock the associated read/write
									mutex object, returning <fo:inline font-family="monospace">true</fo:inline> if the attempt is successful,
									otherwise <fo:inline font-family="monospace">false</fo:inline>. If the associated read/write mutex object is
									already locked by the same thread the behavior is dependent on the
									<fo:basic-link internal-destination="threads.concepts.locking-strategies">locking
									strategy</fo:basic-link> of the associated read/write mutex object.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.try_write_lock()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if locked().</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Makes a non-blocking attempt to write-lock the associated read/write
									mutex object, returning <fo:inline font-family="monospace">true</fo:inline> if the attempt is successful,
									otherwise <fo:inline font-family="monospace">false</fo:inline>. If the associated read/write mutex object is
									already locked by the same thread the behavior is dependent on the
									<fo:basic-link internal-destination="threads.concepts.locking-strategies">locking
									strategy</fo:basic-link> of the associated read/write mutex object.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.try_demote()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if <fo:inline font-family="monospace">state() != read_write_lock_state::write_locked</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Makes a non-blocking attempt to convert the lock held on the associated
									read/write mutex object from a write-lock to a read-lock without releasing
									the lock, returning <fo:inline font-family="monospace">true</fo:inline> if the attempt is successful,
									otherwise <fo:inline font-family="monospace">false</fo:inline>.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.try_promote()</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if <fo:inline font-family="monospace">state() != read_write_lock_state::read_locked</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Makes a non-blocking attempt to convert the lock held on the associated
									read/write mutex object from a read-lock to a write-lock without releasing
									the lock, returning <fo:inline font-family="monospace">true</fo:inline> if the attempt is successful,
									otherwise <fo:inline font-family="monospace">false</fo:inline>.</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.ScopedTryReadWriteLock"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">ScopedTryReadWriteLock Expressions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A ScopedTryReadWriteLock is a refinement of 
				<fo:basic-link internal-destination="threads.concepts.TryReadWriteLock">TryReadWriteLock</fo:basic-link>.
				For a ScopedTryReadWriteLock type <fo:inline font-family="monospace">L</fo:inline>
				and an object <fo:inline font-family="monospace">lk</fo:inline> of that type,
				and an object <fo:inline font-family="monospace">m</fo:inline> of a type meeting the
				<fo:basic-link internal-destination="threads.concepts.TryMutex">TryReadWriteMutex</fo:basic-link> requirements,
				and an object <fo:inline font-family="monospace">s</fo:inline> of type <fo:inline font-family="monospace">read_write_lock_state</fo:inline>,
				and an object <fo:inline font-family="monospace">b</fo:inline> of type <fo:inline font-family="monospace">blocking_mode</fo:inline>, 
				the following expressions must be well-formed
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id597525" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;19.&#xA0;ScopedTryReadWriteLock Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">L lk(m,s,b);</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Constructs an object <fo:inline font-family="monospace">lk</fo:inline> and associates read/write mutex
								object <fo:inline font-family="monospace">m</fo:inline> with it, then: if <fo:inline font-family="monospace">s == read_write_lock_state::read_locked</fo:inline>, calls
								<fo:inline font-family="monospace">read_lock()</fo:inline> if <fo:inline font-family="monospace">b</fo:inline>, otherwise <fo:inline font-family="monospace">try_read_lock()</fo:inline>;
								if <fo:inline font-family="monospace">s==read_write_lock_state::write_locked</fo:inline>, calls <fo:inline font-family="monospace">write_lock()</fo:inline> if <fo:inline font-family="monospace">b</fo:inline>,
								otherwise <fo:inline font-family="monospace">try_write_lock</fo:inline>.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.TimedReadWriteLock"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">TimedReadWriteLock Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A TimedReadWriteLock is a refinement of 
				<fo:basic-link internal-destination="threads.concepts.TryReadWriteLock">TryReadWriteLock</fo:basic-link>. 
				For a TimedReadWriteLock type <fo:inline font-family="monospace">L</fo:inline>
				and an object <fo:inline font-family="monospace">lk</fo:inline> of that type,
				and an object <fo:inline font-family="monospace">t</fo:inline> of type <fo:basic-link internal-destination="xtime">boost::xtime</fo:basic-link>, 
				the following expressions must be well-formed
				and have the indicated effects.</fo:block><fo:block span="none"><fo:block id="id597671" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;20.&#xA0;TimedReadWriteLock Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.timed_read_lock(t)</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if locked().</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Makes a blocking attempt to read-lock the associated read/write mutex object,
									and returns <fo:inline font-family="monospace">true</fo:inline> if successful within the specified time <fo:inline font-family="monospace">t</fo:inline>,
									otherwise <fo:inline font-family="monospace">false</fo:inline>. If the associated read/write mutex object is already
									locked by the same thread the behavior is dependent on the <fo:basic-link internal-destination="threads.concepts.locking-strategies">locking
									strategy</fo:basic-link> of the associated read/write mutex object.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.timed_write_lock(t)</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if locked().</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Makes a blocking attempt to write-lock the associated read/write mutex object, 
									and returns <fo:inline font-family="monospace">true</fo:inline> if successful within the specified time <fo:inline font-family="monospace">t</fo:inline>,
									otherwise <fo:inline font-family="monospace">false</fo:inline>. If the associated read/write mutex object is already
									locked by the same thread the behavior is dependent on the <fo:basic-link internal-destination="threads.concepts.locking-strategies">locking
									strategy</fo:basic-link> of the associated read/write mutex object.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.timed_demote(t)</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if <fo:inline font-family="monospace">state() != read_write_lock_state::write_locked</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Makes a blocking attempt to convert the lock held on the associated
									read/write mutex object from a write-lock to a read-lock without releasing
									the lock, returning <fo:inline font-family="monospace">true</fo:inline> if the attempt is successful
									in the specified time <fo:inline font-family="monospace">t</fo:inline>, otherwise <fo:inline font-family="monospace">false</fo:inline>.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">lk.timed_promote(t)</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Throws <fo:basic-link internal-destination="lock_error">boost::lock_error</fo:basic-link>
									if <fo:inline font-family="monospace">state() != read_write_lock_state::read_locked</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Makes a blocking attempt to convert the lock held on the associated
									read/write mutex object from a read-lock to a write-lock without releasing
									the lock, returning <fo:inline font-family="monospace">true</fo:inline> if the attempt is successful
									in the specified time <fo:inline font-family="monospace">t</fo:inline>, otherwise <fo:inline font-family="monospace">false</fo:inline>.</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="threads.concepts.ScopedTimedReadWriteLock"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">ScopedTimedReadWriteLock Concept</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A ScopedTimedReadWriteLock is a refinement of 
				<fo:basic-link internal-destination="threads.concepts.TimedReadWriteLock">TimedReadWriteLock</fo:basic-link>. 
				For a ScopedTimedReadWriteLock type <fo:inline font-family="monospace">L</fo:inline>
				and an object <fo:inline font-family="monospace">lk</fo:inline> of that type,
				and an object <fo:inline font-family="monospace">m</fo:inline> of a type meeting the 
				<fo:basic-link internal-destination="threads.concepts.TimedReadWriteMutex">TimedReadWriteMutex</fo:basic-link> requirements,
				and an object <fo:inline font-family="monospace">s</fo:inline> of type <fo:inline font-family="monospace">read_write_lock_state</fo:inline>,
				and an object <fo:inline font-family="monospace">t</fo:inline> of type <fo:basic-link internal-destination="xtime">boost::xtime</fo:basic-link>, 
				and an object <fo:inline font-family="monospace">b</fo:inline> of type <fo:inline font-family="monospace">blocking_mode</fo:inline>, 
				the following expressions must be well-formed and have the
				indicated effects.</fo:block><fo:block span="none"><fo:block id="id598003" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;21.&#xA0;ScopedTimedReadWriteLock Expressions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Expression</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Effects</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">L lk(m,s,b);</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Constructs an object <fo:inline font-family="monospace">lk</fo:inline> and associates read/write mutex
								object <fo:inline font-family="monospace">m</fo:inline> with it, then: if <fo:inline font-family="monospace">s == read_write_lock_state::read_locked</fo:inline>, calls
								<fo:inline font-family="monospace">read_lock()</fo:inline> if <fo:inline font-family="monospace">b</fo:inline>, otherwise <fo:inline font-family="monospace">try_read_lock()</fo:inline>;
								if <fo:inline font-family="monospace">s==read_write_lock_state::write_locked</fo:inline>, calls <fo:inline font-family="monospace">write_lock()</fo:inline> if <fo:inline font-family="monospace">b</fo:inline>,
								otherwise <fo:inline font-family="monospace">try_write_lock</fo:inline>.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">L lk(m,s,t);</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Constructs an object <fo:inline font-family="monospace">lk</fo:inline> and associates read/write mutex
								object <fo:inline font-family="monospace">m</fo:inline> with it, then: if <fo:inline font-family="monospace">s == read_write_lock_state::read_locked</fo:inline>, calls
								<fo:inline font-family="monospace">timed_read_lock(t)</fo:inline>; if <fo:inline font-family="monospace">s==read_write_lock_state::write_locked</fo:inline>,
								calls <fo:inline font-family="monospace">timed_write_lock(t)</fo:inline>.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.concepts.read-write-lock-models"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Lock Models</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> currently supplies six models of
			<fo:basic-link internal-destination="threads.concepts.ReadWriteLock">ReadWriteLock</fo:basic-link>
			and its refinements.</fo:block><fo:block span="none"><fo:block id="id598177" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;22.&#xA0;Lock Models</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Concept</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Refines</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Models</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.ReadWriteLock">ReadWriteLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedReadWriteLock">ScopedReadWriteLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.ReadWriteLock">ReadWriteLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::read_write_mutex::scoped_read_write_lock</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::try_read_write_mutex::scoped_read_write_lock</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::timed_read_write_mutex::scoped_read_write_lock</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TryReadWriteLock">TryReadWriteLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.ReadWriteLock">ReadWriteLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTryReadWriteLock">ScopedTryReadWriteLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TryReadWriteLock">TryReadWriteLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::try_read_write_mutex::scoped_try_read_write_lock</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::timed_read_write_mutex::scoped_try_read_write_lock</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TimedReadWriteLock">TimedReadWriteLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TryReadWriteLock">TryReadWriteLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTimedReadWriteLock">ScopedTimedReadWriteLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="threads.concepts.TimedReadWriteLock">TimedReadWriteLock</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">boost::timed_read_write_mutex::scoped_timed_read_write_lock</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.rationale"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Rationale</fo:marker><fo:block font-size="17.28pt">Rationale</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This page explains the rationale behind various design decisions in the
  <fo:inline font-weight="bold">Boost.Threads</fo:inline> library. Having the rationale documented here should explain
  how we arrived at the current design as well as prevent future rehashing of
  discussions and thought processes that have already occurred. It can also give
  users a lot of insight into the design process required for this
  library.</fo:block><fo:block id="threads.rationale.Boost.Threads"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Rationale for the Creation of <fo:inline font-weight="bold">Boost.Threads</fo:inline></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Processes often have a degree of "potential parallelism" and it can
	often be more intuitive to design systems with this in mind. Further, these
	parallel processes can result in more responsive programs. The benefits for
	multithreaded programming are quite well known to most modern programmers,
	yet the C++ language doesn't directly support this concept.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Many platforms support multithreaded programming despite the fact that
	the language doesn't support it. They do this through external libraries,
	which are, unfortunately, platform specific. POSIX has tried to address this
	problem through the standardization of a "pthread" library. However, this is
	a standard only on POSIX platforms, so its portability is limited.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Another problem with POSIX and other platform specific thread
	libraries is that they are almost universally C based libraries. This leaves
	several C++ specific issues unresolved, such as what happens when an
	exception is thrown in a thread. Further, there are some C++ concepts, such
	as destructors, that can make usage much easier than what's available in a C
	library.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">What's truly needed is C++ language support for threads. However, the
	C++ standards committee needs existing practice or a good proposal as a
	starting point for adding this to the standard.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-weight="bold">Boost.Threads</fo:inline> library was developed to provide a C++ developer
	with a portable interface for writing multithreaded programs on numerous
	platforms. There's a hope that the library can be the basis for a more
	detailed proposal for the C++ standards committee to consider for inclusion
	in the next C++ standard.</fo:block></fo:block><fo:block id="threads.rationale.primitives"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Rationale for the Low Level Primitives Supported in <fo:inline font-weight="bold">Boost.Threads</fo:inline></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-weight="bold">Boost.Threads</fo:inline> library supplies a set of low level primitives for
	writing multithreaded programs, such as mutexes and condition variables. In
	fact, the first release of <fo:inline font-weight="bold">Boost.Threads</fo:inline> supports only these low level
	primitives. However, computer science research has shown that use of these
	primitives is difficult since it's difficult to mathematically prove that a
	usage pattern is correct, meaning it doesn't result in race conditions or
	deadlocks. There are several algebras (such as CSP, CCS and Join calculus)
	that have been developed to help write provably correct parallel
	processes. In order to prove the correctness these processes must be coded
	using higher level abstractions. So why does <fo:inline font-weight="bold">Boost.Threads</fo:inline> support the
	lower level concepts?</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The reason is simple: the higher level concepts need to be implemented
	using at least some of the lower level concepts. So having portable lower
	level concepts makes it easier to develop the higher level concepts and will
	allow researchers to experiment with various techniques.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Beyond this theoretical application of higher level concepts, however,
	the fact remains that many multithreaded programs are written using only the
	lower level concepts, so they are useful in and of themselves, even if it's
	hard to prove that their usage is correct. Since many users will be familiar
	with these lower level concepts but unfamiliar with any of the higher
	level concepts, supporting the lower level concepts provides
	greater accessibility.</fo:block></fo:block><fo:block id="threads.rationale.locks"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Rationale for the Lock Design</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Programmers who are used to multithreaded programming issues will
	quickly note that the <fo:inline font-weight="bold">Boost.Threads</fo:inline> design for mutex lock concepts is not
	<fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link> (this is
	clearly documented as well). At first this may seem like a serious design
	flaw. Why have a multithreading primitive that's not thread-safe
	itself?</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A lock object is not a synchronization primitive. A lock object's sole
	responsibility is to ensure that a mutex is both locked and unlocked in a
	manner that won't result in the common error of locking a mutex and then
	forgetting to unlock it. This means that instances of a lock object are only
	going to be created, at least in theory, within block scope and won't be
	shared between threads. Only the mutex objects will be created outside of
	block scope and/or shared between threads. Though it's possible to create a
	lock object outside of block scope and to share it between threads, to do so
	would not be a typical usage (in fact, to do so would likely be an
	error). Nor are there any cases when such usage would be required.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Lock objects must maintain some state information. In order to allow a
	program to determine if a try_lock or timed_lock was successful the lock
	object must retain state indicating the success or failure of the call made
	in its constructor. If a lock object were to have such state and remain
	thread-safe it would need to synchronize access to the state information
	which would result in roughly doubling the time of most operations. Worse,
	since checking the state can occur only by a call after construction, we'd
	have a race condition if the lock object were shared between threads.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">So, to avoid the overhead of synchronizing access to the state
	information and to avoid the race condition, the <fo:inline font-weight="bold">Boost.Threads</fo:inline> library
	simply does nothing to make lock objects thread-safe. Instead, sharing a
	lock object between threads results in undefined behavior. Since the only
	proper usage of lock objects is within block scope this isn't a problem, and
	so long as the lock object is properly used there's no danger of any
	multithreading issues.</fo:block></fo:block><fo:block id="threads.rationale.non-copyable"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Rationale for NonCopyable Thread Type</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Programmers who are used to C libraries for multithreaded programming
	are likely to wonder why <fo:inline font-weight="bold">Boost.Threads</fo:inline> uses a noncopyable design for
	<fo:basic-link internal-destination="thread">boost::thread</fo:basic-link>. After all, the C thread types are
	copyable, and you often have a need for copying them within user
	code. However, careful comparison of C designs to C++ designs shows a flaw
	in this logic.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">All C types are copyable. It is, in fact, not possible to make a
	noncopyable type in C. For this reason types that represent system resources
	in C are often designed to behave very similarly to a pointer to dynamic
	memory. There's an API for acquiring the resource and an API for releasing
	the resource. For memory we have pointers as the type and alloc/free for
	the acquisition and release APIs. For files we have FILE* as the type and
	fopen/fclose for the acquisition and release APIs. You can freely copy
	instances of the types but must manually manage the lifetime of the actual
	resource through the acquisition and release APIs.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">C++ designs recognize that the acquisition and release APIs are error
	prone and try to eliminate possible errors by acquiring the resource in the
	constructor and releasing it in the destructor. The best example of such a
	design is the std::iostream set of classes which can represent the same
	resource as the FILE* type in C. A file is opened in the std::fstream's
	constructor and closed in its destructor. However, if an iostream were
	copyable it could lead to a file being closed twice, an obvious error, so
	the std::iostream types are noncopyable by design. This is the same design
	used by boost::thread, which is a simple and easy to understand design
	that's consistent with other C++ standard types.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">During the design of boost::thread it was pointed out that it would be
	possible to allow it to be a copyable type if some form of "reference
	management" were used, such as ref-counting or ref-lists, and many argued
	for a boost::thread_ref design instead. The reasoning was that copying
	"thread" objects was a typical need in the C libraries, and so presumably
	would be in the C++ libraries as well. It was also thought that
	implementations could provide more efficient reference management than
	wrappers (such as boost::shared_ptr) around a noncopyable thread
	concept. Analysis of whether or not these arguments would hold true doesn't
	appear to bear them out. To illustrate the analysis we'll first provide
	pseudo-code illustrating the six typical usage patterns of a thread
	object.</fo:block><fo:block id="threads.rationale.non-copyable.simple"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">1. Use case: Simple creation of a thread.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id598634" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      void foo()
      {
         create_thread(&amp;bar);
      }
      </fo:block></fo:block><fo:block id="threads.rationale.non-copyable.joined"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">2. Use case: Creation of a thread that's later joined.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id598651" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      void foo()
      {
         thread = create_thread(&amp;bar);
         join(thread);
      }
      </fo:block></fo:block><fo:block id="threads.rationale.non-copyable.loop"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">3. Use case: Simple creation of several threads in a loop.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id598669" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      void foo()
      {
         for (int i=0; i&lt;NUM_THREADS; ++i)
            create_thread(&amp;bar);
      }
      </fo:block></fo:block><fo:block id="threads.rationale.non-copyable.loop-join"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">4. Use case: Creation of several threads in a loop which are later joined.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id598690" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      void foo()
      {
         for (int i=0; i&lt;NUM_THREADS; ++i)
            threads[i] = create_thread(&amp;bar);
         for (int i=0; i&lt;NUM_THREADS; ++i)
            threads[i].join();
      }
      </fo:block></fo:block><fo:block id="threads.rationale.non-copyable.pass"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">5. Use case: Creation of a thread whose ownership is passed to another object/method.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id598712" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      void foo()
      {
         thread = create_thread(&amp;bar);
         manager.owns(thread);
      }
      </fo:block></fo:block><fo:block id="threads.rationale.non-copyable.shared"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">6. Use case: Creation of a thread whose ownership is shared between multiple
	  objects.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id598730" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      void foo()
      {
         thread = create_thread(&amp;bar);
         manager1.add(thread);
         manager2.add(thread);
      }
      </fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Of these usage patterns there's only one that requires reference
	management (number 6). Hopefully it's fairly obvious that this usage pattern
	simply won't occur as often as the other usage patterns. So there really
	isn't a "typical need" for a thread concept, though there is some
	need.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Since the need isn't typical we must use different criteria for
	deciding on either a thread_ref or thread design. Possible criteria include
	ease of use and performance. So let's analyze both of these
	carefully.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With ease of use we can look at existing experience. The standard C++
	objects that represent a system resource, such as std::iostream, are
	noncopyable, so we know that C++ programmers must at least be experienced
	with this design. Most C++ developers are also used to smart pointers such
	as boost::shared_ptr, so we know they can at least adapt to a thread_ref
	concept with little effort. So existing experience isn't going to lead us to
	a choice.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The other thing we can look at is how difficult it is to use both
	types for the six usage patterns above. If we find it overly difficult to
	use a concept for any of the usage patterns there would be a good argument
	for choosing the other design. So we'll code all six usage patterns using
	both designs.</fo:block><fo:block id="threads.rationale_comparison.non-copyable.simple"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">1. Comparison: simple creation of a thread.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id598785" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      void foo()
      {
         thread thrd(&amp;bar);
      }
      void foo()
      {
         thread_ref thrd = create_thread(&amp;bar);
      }
      </fo:block></fo:block><fo:block id="threads.rationale_comparison.non-copyable.joined"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">2. Comparison: creation of a thread that's later joined.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id598807" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      void foo()
      {
         thread thrd(&amp;bar);
         thrd.join();
      }
      void foo()
      {
         thread_ref thrd =
         create_thread(&amp;bar);thrd-&gt;join();
      }
      </fo:block></fo:block><fo:block id="threads.rationale_comparison.non-copyable.loop"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">3. Comparison: simple creation of several threads in a loop.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id598831" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      void foo()
      {
         for (int i=0; i&lt;NUM_THREADS; ++i)
            thread thrd(&amp;bar);
      }
      void foo()
      {
         for (int i=0; i&lt;NUM_THREADS; ++i)
            thread_ref thrd = create_thread(&amp;bar);
      }
      </fo:block></fo:block><fo:block id="threads.rationale_comparison.non-copyable.loop-join"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">4. Comparison: creation of several threads in a loop which are later joined.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id598852" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      void foo()
      {
         std::auto_ptr&lt;thread&gt; threads[NUM_THREADS];
         for (int i=0; i&lt;NUM_THREADS; ++i)
            threads[i] = std::auto_ptr&lt;thread&gt;(new thread(&amp;bar));
         for (int i= 0; i&lt;NUM_THREADS;
             ++i)threads[i]-&gt;join();
      }
      void foo()
      {
         thread_ref threads[NUM_THREADS];
         for (int i=0; i&lt;NUM_THREADS; ++i)
            threads[i] = create_thread(&amp;bar);
         for (int i= 0; i&lt;NUM_THREADS;
            ++i)threads[i]-&gt;join();
      }
      </fo:block></fo:block><fo:block id="threads.rationale_comparison.non-copyable.pass"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">5. Comparison: creation of a thread whose ownership is passed to another object/method.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id598883" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      void foo()
      {
         thread thrd* = new thread(&amp;bar);
         manager.owns(thread);
      }
      void foo()
      {
         thread_ref thrd = create_thread(&amp;bar);
         manager.owns(thrd);
      }
      </fo:block></fo:block><fo:block id="threads.rationale_comparison.non-copyable.shared"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">6. Comparison: creation of a thread whose ownership is shared 
	  between multiple objects.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id598907" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      void foo()
      {
         boost::shared_ptr&lt;thread&gt; thrd(new thread(&amp;bar));
         manager1.add(thrd);
         manager2.add(thrd);
      }
      void foo()
      {
         thread_ref thrd = create_thread(&amp;bar);
         manager1.add(thrd);
         manager2.add(thrd);
      }
      </fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This shows the usage patterns being nearly identical in complexity for
	both designs. The only actual added complexity occurs because of the use of
	operator new in 
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.loop-join">(4)</fo:basic-link>,
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.pass">(5)</fo:basic-link>, and
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.shared">(6)</fo:basic-link>;
	and the use of std::auto_ptr and boost::shared_ptr in 
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.loop-join">(4)</fo:basic-link> and 
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.shared">(6)</fo:basic-link>
	respectively. However, that's not really
	much added complexity, and C++ programmers are used to using these idioms
	anyway. Some may dislike the presence of operator new in user code, but
	this can be eliminated by proper design of higher level concepts, such as
	the boost::thread_group class that simplifies example 
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.loop-join">(4)</fo:basic-link>
	down to:</fo:block><fo:block id="id598993" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
    void foo()
    {
       thread_group threads;
       for (int i=0; i&lt;NUM_THREADS; ++i)
          threads.create_thread(&amp;bar);
       threads.join_all();
    }
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">So ease of use is really a wash and not much help in picking a
	design.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">So what about performance? Looking at the above code examples, 
    we can analyze the theoretical impact to performance that both designs
	have. For <fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.simple">(1)</fo:basic-link>
	we can see that platforms that don't have a ref-counted native
	thread type (POSIX, for instance) will be impacted by a thread_ref
	design. Even if the native thread type is ref-counted there may be an impact
	if more state information has to be maintained for concepts foreign to the
	native API, such as clean up stacks for Win32 implementations. 
	For <fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.joined">(2)</fo:basic-link>
	and <fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.loop">(3)</fo:basic-link>
	the performance impact will be identical to
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.simple">(1)</fo:basic-link>.
	For <fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.loop-join">(4)</fo:basic-link>
	things get a little more interesting and we find that theoretically at least
	the thread_ref may perform faster since the thread design requires dynamic
	memory allocation/deallocation. However, in practice there may be dynamic
	allocation for the thread_ref design as well, it will just be hidden from
	the user. As long as the implementation has to do dynamic allocations the
	thread_ref loses again because of the reference management. For 
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.pass">(5)</fo:basic-link> we see
	the same impact as we do for 
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.loop-join">(4)</fo:basic-link>.
	For <fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.shared">(6)</fo:basic-link>
	we still have a possible impact to
	the thread design because of dynamic allocation but thread_ref no longer
	suffers because of its reference management, and in fact, theoretically at
	least, the thread_ref may do a better job of managing the references. All of
	this indicates that thread wins for 
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.simple">(1)</fo:basic-link>, 
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.joined">(2)</fo:basic-link> and 
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.loop">(3)</fo:basic-link>; with 
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.loop-join">(4)</fo:basic-link>
	and <fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.pass">(5)</fo:basic-link> the
	winner depending on the implementation and the platform but with the thread design
	probably having a better chance; and with 
	<fo:basic-link internal-destination="threads.rationale_comparison.non-copyable.shared">(6)</fo:basic-link> 
	it will again depend on the
	implementation and platform but this time we favor thread_ref
	slightly. Given all of this it's a narrow margin, but the thread design
	prevails.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Given this analysis, and the fact that noncopyable objects for system
	resources are the normal designs that C++ programmers are used to dealing
	with, the <fo:inline font-weight="bold">Boost.Threads</fo:inline> library has gone with a noncopyable design.</fo:block></fo:block><fo:block id="threads.rationale.events"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Rationale for not providing <fo:inline font-style="italic">Event Variables</fo:inline></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-style="italic">Event variables</fo:inline> are simply far too
	error-prone. <fo:basic-link internal-destination="condition">boost::condition</fo:basic-link> variables are a much safer
	alternative. [Note that Graphical User Interface <fo:inline font-style="italic">events</fo:inline> are 
	a different concept, and are not what is being discussed here.]</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Event variables were one of the first synchronization primitives. They
	are still used today, for example, in the native Windows multithreading
	API. Yet both respected computer science researchers and experienced
	multithreading practitioners believe event variables are so inherently
	error-prone that they should never be used, and thus should not be part of a
	multithreading library.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Per Brinch Hansen [<fo:basic-link internal-destination="threads.bib.Hansen73">Hansen73</fo:basic-link>] analyzed event variables in some
	detail, pointing out [emphasis his] that "<fo:inline font-style="italic">event operations force
	the programmer to be aware of the relative speeds of the sending and
	receiving processes</fo:inline>". His summary:</fo:block><fo:block start-indent="0.5in" end-indent="0.5in" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">We must therefore conclude that event variables of the previous type
	  are impractical for system design. <fo:inline font-style="italic">The effect of an interaction
	  between two processes must be independent of the speed at which it is
	  carried out.</fo:inline></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Experienced programmers using the Windows platform today report that
	event variables are a continuing source of errors, even after previous bad
	experiences caused them to be very careful in their use of event
	variables. Overt problems can be avoided, for example, by teaming the event
	variable with a mutex, but that may just convert a <fo:basic-link internal-destination="threads.glossary.race-condition">race condition</fo:basic-link> into another
	problem, such as excessive resource use. One of the most distressing aspects
	of the experience reports is the claim that many defects are latent. That
	is, the programs appear to work correctly, but contain hidden timing
	dependencies which will cause them to fail when environmental factors or
	usage patterns change, altering relative thread timings.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The decision to exclude event variables from <fo:inline font-weight="bold">Boost.Threads</fo:inline> has been
	surprising to some Windows programmers. They have written programs which
	work using event variables, and wonder what the problem is. It seems similar
	to the "goto considered harmful" controversy of 30 years ago. It isn't that
	events, like gotos, can't be made to work, but rather that virtually all
	programs using alternatives will be easier to write, debug, read, maintain,
	and will be less likely to contain latent defects.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">[Rationale provided by Beman Dawes]</fo:block></fo:block></fo:block><fo:block id="threads.reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Reference</fo:marker><fo:block font-size="17.28pt">Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id470450"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/thread/barrier.hpp">boost/thread/barrier.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id599329" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="barrier">barrier</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="barrier"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class barrier</fo:block></fo:block><fo:block space-after="1em">Class barrier <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An object of class <fo:basic-link internal-destination="barrier">barrier</fo:basic-link> is a synchronization 
        primitive used  to cause a set of threads to wait until they each perform a 
        certain function or each reach a particular point in their execution.</fo:block></fo:block><fo:block>boost::barrier</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id599385"><fo:block/><fo:block id="id599386" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> barrier : <fo:inline font-weight="bold">private</fo:inline> boost::noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="barrierconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id330360-bb">barrier</fo:basic-link>(size_t);
&#xA0;&#xA0;<fo:basic-link internal-destination="id262518-bb">~barrier</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id480142-bb">waiting</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id262511-bb">wait</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id599477"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When a barrier is created, it is initialized with a thread count N.
		The first N-1 calls to <fo:inline font-family="monospace">wait()</fo:inline> will all cause their threads to be blocked. 
		The Nth call to <fo:inline font-family="monospace">wait()</fo:inline> will allow all  of the waiting threads, including 
		the Nth thread, to be placed in a ready state.  The Nth call will also "reset"
		the barrier such that, if an additional N+1th call is made to <fo:inline font-family="monospace">wait()</fo:inline>, 
		it will be as though this were the first call to <fo:inline font-family="monospace">wait()</fo:inline>; in other
		words, the N+1th to 2N-1th calls to <fo:inline font-family="monospace">wait()</fo:inline> will cause their
		threads to be blocked, and the 2Nth call to <fo:inline font-family="monospace">wait()</fo:inline> will allow all of 
		the waiting threads, including the 2Nth thread, to be placed in a ready state
		and reset the barrier. This functionality allows the same set of N threads to re-use 
		a barrier object to  synchronize their execution at multiple points during their 
		execution.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">See <fo:basic-link internal-destination="threads.glossary">Glossary</fo:basic-link> for definitions of thread 
		states <fo:basic-link internal-destination="threads.glossary.thread-state">blocked</fo:basic-link>
		and <fo:basic-link internal-destination="threads.glossary.thread-state">ready</fo:basic-link>.
		Note that "waiting" is a synonym for blocked.</fo:block><fo:block id="id599563"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">barrier construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="barrierconstruct-copy-destruct"/><fo:inline font-family="monospace">barrier</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id599577" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id599584" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id599586" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id330360-bb"/>barrier(size_t count);</fo:block></fo:block><fo:list-block id="id599599" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id599603" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Constructs a <fo:basic-link internal-destination="barrier">barrier</fo:basic-link> object that 
        will cause <fo:inline font-family="monospace">count</fo:inline> threads to block on a call to <fo:inline font-family="monospace">wait()</fo:inline>.
        </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id599632" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id599635" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id262518-bb"/>~barrier();</fo:block></fo:block><fo:list-block id="id599648" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id599652" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Destroys <fo:inline font-family="monospace">*this</fo:inline>. If threads are still executing 
		their <fo:inline font-family="monospace">wait()</fo:inline> operations, the behavior for these threads is undefined.
		</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id599674"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">barrier waiting</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id480142-bb"/><fo:inline font-family="monospace">barrier</fo:inline> waiting</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id599688" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id599695" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id599697" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id262511-bb"/>wait();</fo:block></fo:block><fo:list-block id="id599718" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id599722" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Wait until N threads call <fo:inline font-family="monospace">wait()</fo:inline>, where
          N equals the <fo:inline font-family="monospace">count</fo:inline> provided to the constructor for the 
          barrier object.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Note</fo:inline> that if the barrier is 
          destroyed before <fo:inline font-family="monospace">wait()</fo:inline> can return, the behavior is 
          undefined.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id599760" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Exactly one of the N threads will receive a return value
		  of <fo:inline font-family="monospace">true</fo:inline>, the others will receive a value of <fo:inline font-family="monospace">false</fo:inline>. 
		  Precisely which thread receives the return value of <fo:inline font-family="monospace">true</fo:inline> will 
		  be implementation-defined. Applications can use this value to designate one 
		  thread as a leader that will take a certain action, and the other threads 
		  emerging from the barrier can wait for that action to take place.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id525796"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/thread/condition.hpp">boost/thread/condition.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id599809" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="condition">condition</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="condition"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class condition</fo:block></fo:block><fo:block space-after="1em">Class condition <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An object of class <fo:basic-link internal-destination="condition">condition</fo:basic-link> is a
          synchronization primitive used to cause a thread to wait until a
          particular shared-data condition (or time) is met.</fo:block></fo:block><fo:block>boost::condition</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id599863"><fo:block/><fo:block id="id599864" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> condition : <fo:inline font-weight="bold">private</fo:inline> boost::noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="conditionconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id405345-bb">condition</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id447365-bb">~condition</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id457659-bb">notification</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id478884-bb">notify_one</fo:basic-link>();
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id508299-bb">notify_all</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id439939-bb">waiting</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ScopedLock&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id231704-bb">wait</fo:basic-link>(ScopedLock&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ScopedLock, <fo:inline font-weight="bold">typename</fo:inline> Pred&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id555106-bb">wait</fo:basic-link>(ScopedLock&amp;, Pred);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ScopedLock&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id414344-bb">timed_wait</fo:basic-link>(ScopedLock&amp;, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="xtime">boost::xtime</fo:basic-link>&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ScopedLock, <fo:inline font-weight="bold">typename</fo:inline> Pred&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id336133-bb">timed_wait</fo:basic-link>(ScopedLock&amp;, Pred);
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id600138"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A <fo:basic-link internal-destination="condition">condition</fo:basic-link> object is always used in
          conjunction with a <fo:basic-link internal-destination="threads.concepts.mutexes">mutex</fo:basic-link>
          object (an object whose type is a model of a <fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link> or one of its
          refinements). The mutex object must be locked prior to waiting on the
          condition, which is verified by passing a lock object (an object whose
          type is a model of <fo:basic-link internal-destination="threads.concepts.Lock">Lock</fo:basic-link> or
          one of its refinements) to the <fo:basic-link internal-destination="condition">condition</fo:basic-link> object's
          wait functions. Upon blocking on the <fo:basic-link internal-destination="condition">condition</fo:basic-link>
          object, the thread unlocks the mutex object. When the thread returns
          from a call to one of the <fo:basic-link internal-destination="condition">condition</fo:basic-link> object's wait
          functions the mutex object is again locked. The tricky unlock/lock
          sequence is performed automatically by the
          <fo:basic-link internal-destination="condition">condition</fo:basic-link> object's wait functions.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="condition">condition</fo:basic-link> type is often used to
          implement the Monitor Object and other important patterns (see
          [<fo:basic-link internal-destination="threads.bib.SchmidtStalRohnertBuschmann">SchmidtStalRohnertBuschmann</fo:basic-link>] and [<fo:basic-link internal-destination="threads.bib.Hoare74">Hoare74</fo:basic-link>]). Monitors are one
          of the most important patterns for creating reliable multithreaded
          programs.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">See <fo:basic-link internal-destination="threads.glossary">Glossary</fo:basic-link> for definitions of <fo:basic-link internal-destination="threads.glossary.thread-state">thread states</fo:basic-link>
          blocked and ready. Note that "waiting" is a synonym for blocked.</fo:block><fo:block id="id600286"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">condition construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="conditionconstruct-copy-destruct"/><fo:inline font-family="monospace">condition</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id600301" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id600307" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id600309" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id405345-bb"/>condition();</fo:block></fo:block><fo:list-block id="id600323" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id600326" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Constructs a <fo:basic-link internal-destination="condition">condition</fo:basic-link>
            object.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id600343" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id600345" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id447365-bb"/>~condition();</fo:block></fo:block><fo:list-block id="id600358" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id600362" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Destroys <fo:inline font-family="monospace">*this</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id600376"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">condition notification</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id457659-bb"/><fo:inline font-family="monospace">condition</fo:inline> notification</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id600390" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id600396" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id600398" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id478884-bb"/>notify_one();</fo:block></fo:block><fo:list-block id="id600419" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id600423" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If there is a thread waiting on <fo:inline font-family="monospace">*this</fo:inline>,
              change that thread's state to ready. Otherwise there is no
              effect.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id600437" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If more than one thread is waiting on <fo:inline font-family="monospace">*this</fo:inline>,
              it is unspecified which is made ready. After returning to a ready
              state the notified thread must still acquire the mutex again (which
              occurs within the call to one of the <fo:basic-link internal-destination="condition">condition</fo:basic-link>
              object's wait functions.)</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id600464" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id600466" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id508299-bb"/>notify_all();</fo:block></fo:block><fo:list-block id="id600487" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id600490" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Change the state of all threads waiting on
              <fo:inline font-family="monospace">*this</fo:inline> to ready. If there are no waiting threads,
              <fo:inline font-family="monospace">notify_all()</fo:inline> has no effect.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id600513"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">condition waiting</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id439939-bb"/><fo:inline font-family="monospace">condition</fo:inline> waiting</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id600528" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id600534" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id600536" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ScopedLock&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id231704-bb"/>wait(ScopedLock&amp; lock);</fo:block></fo:block><fo:list-block id="id600572" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id600576" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">ScopedLock</fo:inline> meets the <fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link>
              requirements.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id600597" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Releases the lock on the <fo:basic-link internal-destination="threads.concepts.mutexes">mutex object</fo:basic-link>
              associated with <fo:inline font-family="monospace">lock</fo:inline>, blocks the current thread of execution
              until readied by a call to <fo:inline font-family="monospace">this-&gt;notify_one()</fo:inline>
              or<fo:inline font-family="monospace"> this-&gt;notify_all()</fo:inline>, and then reacquires the
              lock.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id600638" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="lock_error">lock_error</fo:basic-link> if
              <fo:inline font-family="monospace">!lock.locked()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id600658" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id600660" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ScopedLock, <fo:inline font-weight="bold">typename</fo:inline> Pred&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id555106-bb"/>wait(ScopedLock&amp; lock, Pred pred);</fo:block></fo:block><fo:list-block id="id600703" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id600706" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">ScopedLock</fo:inline> meets the <fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link>
              requirements and the return from <fo:inline font-family="monospace">pred()</fo:inline> is
              convertible to <fo:inline font-family="monospace">bool</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id600743" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>As if: <fo:inline font-family="monospace">while (!pred())
                wait(lock)</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id600756" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="lock_error">lock_error</fo:basic-link> if
              <fo:inline font-family="monospace">!lock.locked()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id600776" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id600778" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ScopedLock&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id414344-bb"/>timed_wait(ScopedLock&amp; lock, <fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="xtime">boost::xtime</fo:basic-link>&amp; xt);</fo:block></fo:block><fo:list-block id="id600828" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id600832" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">ScopedLock</fo:inline> meets the <fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link>
              requirements.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id600853" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Releases the lock on the <fo:basic-link internal-destination="threads.concepts.mutexes">mutex object</fo:basic-link>
              associated with <fo:inline font-family="monospace">lock</fo:inline>, blocks the current thread of execution
              until readied by a call to <fo:inline font-family="monospace">this-&gt;notify_one()</fo:inline>
              or<fo:inline font-family="monospace"> this-&gt;notify_all()</fo:inline>, or until time <fo:inline font-family="monospace">xt</fo:inline> 
              is reached, and then reacquires the lock.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id600901" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">false</fo:inline> if time <fo:inline font-family="monospace">xt</fo:inline> is reached,
              otherwise <fo:inline font-family="monospace">true</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id600927" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="lock_error">lock_error</fo:basic-link> if
              <fo:inline font-family="monospace">!lock.locked()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id600946" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id600949" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ScopedLock, <fo:inline font-weight="bold">typename</fo:inline> Pred&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id336133-bb"/>timed_wait(ScopedLock&amp; lock, Pred pred);</fo:block></fo:block><fo:list-block id="id600991" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id600995" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">ScopedLock</fo:inline> meets the <fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link>
              requirements and the return from <fo:inline font-family="monospace">pred()</fo:inline> is
              convertible to <fo:inline font-family="monospace">bool</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id601031" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>As if: <fo:inline font-family="monospace">while (!pred()) { if (!timed_wait(lock,
                xt)) return false; } return true;</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id601045" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">false</fo:inline> if <fo:inline font-family="monospace">xt</fo:inline> is reached,
              otherwise <fo:inline font-family="monospace">true</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id601071" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="lock_error">lock_error</fo:basic-link> if
              <fo:inline font-family="monospace">!lock.locked()</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id417361"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/thread/exceptions.hpp">boost/thread/exceptions.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id601107" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="lock_error">lock_error</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="thread_resource_error">thread_resource_error</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="lock_error"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class lock_error</fo:block></fo:block><fo:block space-after="1em">Class lock_error <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The lock_error class defines an exception type thrown
			to indicate a locking related error has been detected.</fo:block></fo:block><fo:block>boost::lock_error</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id601168"><fo:block/><fo:block id="id601170" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> lock_error : <fo:inline font-weight="bold">public</fo:inline> std::logical_error {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="lock_errorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id421939-bb">lock_error</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id601222"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Examples of errors indicated by a lock_error exception 
			include a lock operation which can be determined to result in a 
			deadlock, or unlock operations attempted by a thread that does 
			not own the lock.</fo:block><fo:block id="id601232"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">lock_error construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="lock_errorconstruct-copy-destruct"/><fo:inline font-family="monospace">lock_error</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id601248" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id601255" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id601257" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id421939-bb"/>lock_error();</fo:block></fo:block><fo:list-block id="id601270" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id601274" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Constructs a <fo:inline font-family="monospace">lock_error</fo:inline> object.
			</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="thread_resource_error"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class thread_resource_error</fo:block></fo:block><fo:block space-after="1em">Class thread_resource_error <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="thread_resource_error">thread_resource_error</fo:basic-link> class
			defines an exception type that is thrown by constructors in the
			<fo:inline font-weight="bold">Boost.Threads</fo:inline> library when thread-related resources can not be 
			acquired.</fo:block></fo:block><fo:block>boost::thread_resource_error</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id601326"><fo:block/><fo:block id="id601328" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> thread_resource_error : <fo:inline font-weight="bold">public</fo:inline> std::runtime_error {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="thread_resource_errorconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id220271-bb">thread_resource_error</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id601380"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="thread_resource_error">thread_resource_error</fo:basic-link> is used
			only when thread-related resources cannot be acquired; memory
			allocation failures are indicated by 
			std::bad_alloc.</fo:block><fo:block id="id601396"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">thread_resource_error construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="thread_resource_errorconstruct-copy-destruct"/><fo:inline font-family="monospace">thread_resource_error</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id601413" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id601419" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id601421" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id220271-bb"/>thread_resource_error();</fo:block></fo:block><fo:list-block id="id601435" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id601438" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Constructs a <fo:inline font-family="monospace">thread_resource_error</fo:inline>
			object.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id405534"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/thread/mutex.hpp">boost/thread/mutex.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id601468" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="mutex">mutex</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="mutex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class mutex</fo:block></fo:block><fo:block space-after="1em">Class mutex <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="mutex">mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link> concept.</fo:block></fo:block><fo:block>boost::mutex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id601558"><fo:block/><fo:block id="id601559" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> mutex : <fo:inline font-weight="bold">private</fo:inline> boost::noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_lock;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="mutexconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id327644-bb">mutex</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id441803-bb">~mutex</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id601636"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="mutex">mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link> concept. 
			It should be used to synchronize access to shared resources using
			<fo:basic-link internal-destination="threads.concepts.unspecified-locking-strategy">Unspecified</fo:basic-link>
			locking mechanics.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For classes that model related mutex concepts, see 
			<fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link> and <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For <fo:basic-link internal-destination="threads.concepts.recursive-locking-strategy">Recursive</fo:basic-link>
			locking mechanics, see <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link>,
			<fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link>, and <fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link>.
			</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="mutex">mutex</fo:basic-link> class supplies the following typedef,
			which <fo:basic-link internal-destination="threads.concepts.lock-models">models</fo:basic-link>
			the specified locking strategy:

			<fo:block id="id601753" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Lock Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Lock Concept</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="mutex">mutex</fo:basic-link> class uses an 
			<fo:basic-link internal-destination="threads.concepts.unspecified-locking-strategy">Unspecified</fo:basic-link>
			locking strategy, so attempts to recursively lock a <fo:basic-link internal-destination="mutex">mutex</fo:basic-link>
			object or attempts to unlock one by threads that don't own a lock on it result in
			<fo:inline font-weight="bold">undefined behavior</fo:inline>.
			This strategy allows implementations to be as efficient as possible
			on any given platform. It is, however, recommended that
			implementations include debugging support to detect misuse when
			<fo:inline font-family="monospace">NDEBUG</fo:inline> is not defined.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Like all
			<fo:basic-link internal-destination="threads.concepts.mutex-models">mutex models</fo:basic-link>
			in <fo:inline font-weight="bold">Boost.Threads</fo:inline>, <fo:basic-link internal-destination="mutex">mutex</fo:basic-link> leaves the 
			<fo:basic-link internal-destination="threads.concepts.sheduling-policies">scheduling policy</fo:basic-link>
			as <fo:basic-link internal-destination="threads.concepts.unspecified-scheduling-policy">Unspecified</fo:basic-link>. 
			Programmers should make no assumptions about the order in which
			waiting threads acquire a lock.</fo:block><fo:block id="id601878"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">mutex construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="mutexconstruct-copy-destruct"/><fo:inline font-family="monospace">mutex</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id601891" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id601897" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id601900" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id327644-bb"/>mutex();</fo:block></fo:block><fo:list-block id="id601913" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id601917" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Constructs a <fo:basic-link internal-destination="mutex">mutex</fo:basic-link> object.
			</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id601931" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.
			</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id601944" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id601946" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id441803-bb"/>~mutex();</fo:block></fo:block><fo:list-block id="id601959" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id601963" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destroys a <fo:basic-link internal-destination="mutex">mutex</fo:basic-link> object.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id601978" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id601990" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-weight="bold">Danger:</fo:inline> Destruction of a
			locked mutex is a serious programming error resulting in undefined
			behavior such as a program crash.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="try_mutex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class try_mutex</fo:block></fo:block><fo:block space-after="1em">Class try_mutex <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.TryMutex">TryMutex</fo:basic-link> concept.</fo:block></fo:block><fo:block>boost::try_mutex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id602041"><fo:block/><fo:block id="id602042" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> try_mutex : <fo:inline font-weight="bold">private</fo:inline> boost::noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_lock;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_try_lock;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="try_mutexconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id339968-bb">try_mutex</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id246386-bb">~try_mutex</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id602131"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.TryMutex">TryMutex</fo:basic-link> concept. 
			It should be used to synchronize access to shared resources using
			<fo:basic-link internal-destination="threads.concepts.unspecified-locking-strategy">Unspecified</fo:basic-link>
			locking mechanics.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For classes that model related mutex concepts, see 
			<fo:basic-link internal-destination="mutex">mutex</fo:basic-link> and <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For <fo:basic-link internal-destination="threads.concepts.recursive-locking-strategy">Recursive</fo:basic-link>
			locking mechanics, see <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link>,
			<fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link>, and <fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link>.
			</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link> class supplies the following typedefs,
			which <fo:basic-link internal-destination="threads.concepts.lock-models">model</fo:basic-link>
			the specified locking strategies:

			<fo:block id="id602243" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Lock Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Lock Concept</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_try_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTryLock">ScopedTryLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link> class uses an 
			<fo:basic-link internal-destination="threads.concepts.unspecified-locking-strategy">Unspecified</fo:basic-link>
			locking strategy, so attempts to recursively lock a <fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link>
			object or attempts to unlock one by threads that don't own a lock on it result in
			<fo:inline font-weight="bold">undefined behavior</fo:inline>.
			This strategy allows implementations to be as efficient as possible
			on any given platform. It is, however, recommended that
			implementations include debugging support to detect misuse when
			<fo:inline font-family="monospace">NDEBUG</fo:inline> is not defined.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Like all
			<fo:basic-link internal-destination="threads.concepts.mutex-models">mutex models</fo:basic-link>
			in <fo:inline font-weight="bold">Boost.Threads</fo:inline>, <fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link> leaves the 
			<fo:basic-link internal-destination="threads.concepts.sheduling-policies">scheduling policy</fo:basic-link>
			as <fo:basic-link internal-destination="threads.concepts.unspecified-scheduling-policy">Unspecified</fo:basic-link>. 
			Programmers should make no assumptions about the order in which
			waiting threads acquire a lock.</fo:block><fo:block id="id602379"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">try_mutex construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="try_mutexconstruct-copy-destruct"/><fo:inline font-family="monospace">try_mutex</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id602393" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id602399" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id602402" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id339968-bb"/>try_mutex();</fo:block></fo:block><fo:list-block id="id602415" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id602418" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Constructs a <fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link> object.
			</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id602433" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.
			</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id602445" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id602448" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id246386-bb"/>~try_mutex();</fo:block></fo:block><fo:list-block id="id602461" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id602464" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destroys a <fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link> object.
			</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id602479" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id602491" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-weight="bold">Danger:</fo:inline> Destruction of a
			locked mutex is a serious programming error resulting in undefined
			behavior such as a program crash.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="timed_mutex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class timed_mutex</fo:block></fo:block><fo:block space-after="1em">Class timed_mutex <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.TimedMutex">TimedMutex</fo:basic-link> concept.</fo:block></fo:block><fo:block>boost::timed_mutex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id602543"><fo:block/><fo:block id="id602544" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> timed_mutex : <fo:inline font-weight="bold">private</fo:inline> boost::noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_try_lock;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_timed_lock;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="timed_mutexconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id551651-bb">timed_mutex</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id234091-bb">~timed_mutex</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id602645"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.TimedMutex">TimedMutex</fo:basic-link> concept. 
			It should be used to synchronize access to shared resources using
			<fo:basic-link internal-destination="threads.concepts.unspecified-locking-strategy">Unspecified</fo:basic-link>
			locking mechanics.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For classes that model related mutex concepts, see 
			<fo:basic-link internal-destination="mutex">mutex</fo:basic-link> and <fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For <fo:basic-link internal-destination="threads.concepts.recursive-locking-strategy">Recursive</fo:basic-link>
			locking mechanics, see <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link>,
			<fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link>, and <fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link>.
			</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link> class supplies the following typedefs,
			which <fo:basic-link internal-destination="threads.concepts.lock-models">model</fo:basic-link>
			the specified locking strategies:

			<fo:block id="id602757" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Lock Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Lock Concept</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_try_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTryLock">ScopedTryLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_timed_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTimedLock">ScopedTimedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link> class uses an 
			<fo:basic-link internal-destination="threads.concepts.unspecified-locking-strategy">Unspecified</fo:basic-link>
			locking strategy, so attempts to recursively lock a <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link>
			object or attempts to unlock one by threads that don't own a lock on it result in
			<fo:inline font-weight="bold">undefined behavior</fo:inline>.
			This strategy allows implementations to be as efficient as possible
			on any given platform. It is, however, recommended that
			implementations include debugging support to detect misuse when
			<fo:inline font-family="monospace">NDEBUG</fo:inline> is not defined.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Like all 
			<fo:basic-link internal-destination="threads.concepts.mutex-models">mutex models</fo:basic-link>
			in  <fo:inline font-weight="bold">Boost.Threads</fo:inline>, <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link> leaves the 
			<fo:basic-link internal-destination="threads.concepts.sheduling-policies">scheduling policy</fo:basic-link>
			as <fo:basic-link internal-destination="threads.concepts.unspecified-scheduling-policy">Unspecified</fo:basic-link>. 
			Programmers should make no assumptions about the order in which
			waiting threads acquire a lock.</fo:block><fo:block id="id602906"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">timed_mutex construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="timed_mutexconstruct-copy-destruct"/><fo:inline font-family="monospace">timed_mutex</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id602921" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id602927" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id602929" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id551651-bb"/>timed_mutex();</fo:block></fo:block><fo:list-block id="id602943" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id602946" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Constructs a <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link> object.
			</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id602961" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.
			</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id602973" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id602976" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id234091-bb"/>~timed_mutex();</fo:block></fo:block><fo:list-block id="id602989" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id602993" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destroys a <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link> object.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id603008" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id603020" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-weight="bold">Danger:</fo:inline> Destruction of a
			locked mutex is a serious programming error resulting in undefined
			behavior such as a program crash.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id485587"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/thread/once.hpp">boost/thread/once.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id603050" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">

<fo:basic-link internal-destination="BOOST_ONCE_INIT">BOOST_ONCE_INIT</fo:basic-link></fo:block><fo:block id="id603063" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> once_flag;  <fo:inline font-style="italic">// The <fo:basic-link internal-destination="call_once">call_once</fo:basic-link> function and
			<fo:inline font-family="monospace">once_flag</fo:inline> type (statically initialized to 
			<fo:basic-link internal-destination="BOOST_ONCE_INIT">BOOST_ONCE_INIT</fo:basic-link>) can be used to run a
			routine exactly once. This can be used to initialize data in a
			<fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link>
			manner.</fo:inline>
&#xA0;&#xA0; <fo:basic-link internal-destination="call_once">call_once</fo:basic-link>(<fo:inline font-weight="bold">void</fo:inline> (*func)(), once_flag&amp;);
}</fo:block><fo:block break-before="page"><fo:block id="BOOST_ONCE_INIT"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Macro BOOST_ONCE_INIT</fo:block></fo:block><fo:block space-after="1em">Macro BOOST_ONCE_INIT <fo:inline font-family="serif">--</fo:inline> The call_once function and
		<fo:inline font-family="monospace">once_flag</fo:inline> type (statically initialized to 
		<fo:basic-link internal-destination="BOOST_ONCE_INIT">BOOST_ONCE_INIT</fo:basic-link>) can be used to run a
		routine exactly once. This can be used to initialize data in a
		<fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link>
		manner.</fo:block><fo:block>BOOST_ONCE_INIT</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id603183"><fo:block/><fo:block id="id603184" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">BOOST_ONCE_INIT</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id603190"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block>The implementation-defined macro 
		<fo:basic-link internal-destination="BOOST_ONCE_INIT">BOOST_ONCE_INIT</fo:basic-link> is a constant value used to 
		initialize <fo:inline font-family="monospace">once_flag</fo:inline> instances to indicate that the 
		logically associated routine has not been run yet. See 
		call_once for more details.</fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="call_once"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function call_once</fo:block></fo:block><fo:block space-after="1em">Function call_once <fo:inline font-family="serif">--</fo:inline> The <fo:basic-link internal-destination="call_once">call_once</fo:basic-link> function and
			<fo:inline font-family="monospace">once_flag</fo:inline> type (statically initialized to 
			<fo:basic-link internal-destination="BOOST_ONCE_INIT">BOOST_ONCE_INIT</fo:basic-link>) can be used to run a
			routine exactly once. This can be used to initialize data in a
			<fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link>
			manner.</fo:block><fo:block>boost::call_once</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id603266"><fo:block/><fo:block id="id603267" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
 call_once(<fo:inline font-weight="bold">void</fo:inline> (*func)() func, once_flag&amp; flag);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id603280"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Example usage is as follows:</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id603287" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">//Example usage:
boost::once_flag once = BOOST_ONCE_INIT;

void init()
{
    //...
}

void thread_proc()
{
    boost::call_once(&amp;init, once);
}</fo:block></fo:block><fo:list-block id="id603297" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id603300" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The function <fo:inline font-family="monospace">func</fo:inline> shall not throw
			exceptions.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id603314" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>As if (in an atomic fashion): 
			<fo:inline font-family="monospace">if (flag == BOOST_ONCE_INIT) func();</fo:inline></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id603327" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">flag != BOOST_ONCE_INIT</fo:inline></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id462943"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/thread/recursive_mutex.hpp">boost/thread/recursive_mutex.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id603354" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="recursive_mutex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class recursive_mutex</fo:block></fo:block><fo:block space-after="1em">Class recursive_mutex <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link> concept.</fo:block></fo:block><fo:block>boost::recursive_mutex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id603446"><fo:block/><fo:block id="id603447" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> recursive_mutex : <fo:inline font-weight="bold">private</fo:inline> boost::noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_lock;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="recursive_mutexconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id425611-bb">recursive_mutex</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id292688-bb">~recursive_mutex</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id603525"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.Mutex">Mutex</fo:basic-link> concept. 
			It should be used to synchronize access to shared resources using
			<fo:basic-link internal-destination="threads.concepts.recursive-locking-strategy">Recursive</fo:basic-link>
			locking mechanics.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For classes that model related mutex concepts, see 
			<fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link> and <fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For <fo:basic-link internal-destination="threads.concepts.unspecified-locking-strategy">Unspecified</fo:basic-link>
			locking mechanics, see <fo:basic-link internal-destination="mutex">mutex</fo:basic-link>,
			<fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link>, and <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link>.
			</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link> class supplies the following typedef,
			which models the specified locking strategy:

			<fo:block span="none"><fo:block id="id603627" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;23.&#xA0;Supported Lock Types</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Lock Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Lock Concept</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link> class uses a
			<fo:basic-link internal-destination="threads.concepts.recursive-locking-strategy">Recursive</fo:basic-link>
			locking strategy, so attempts to recursively lock a 
			<fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link> object
			succeed and an internal "lock count" is maintained. 
			Attempts to unlock a <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link> object
			by threads that don't own a lock on it result in
			<fo:inline font-weight="bold">undefined behavior</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Like all
			<fo:basic-link internal-destination="threads.concepts.mutex-models">mutex models</fo:basic-link>
			in <fo:inline font-weight="bold">Boost.Threads</fo:inline>, <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link> leaves the 
			<fo:basic-link internal-destination="threads.concepts.sheduling-policies">scheduling policy</fo:basic-link>
			as <fo:basic-link internal-destination="threads.concepts.unspecified-scheduling-policy">Unspecified</fo:basic-link>. 
			Programmers should make no assumptions about the order in which
			waiting threads acquire a lock.</fo:block><fo:block id="id603753"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">recursive_mutex construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="recursive_mutexconstruct-copy-destruct"/><fo:inline font-family="monospace">recursive_mutex</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id603768" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id603774" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id603776" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id425611-bb"/>recursive_mutex();</fo:block></fo:block><fo:list-block id="id603790" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id603794" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Constructs a <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link> object.
			</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id603808" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.
			</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id603820" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id603823" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id292688-bb"/>~recursive_mutex();</fo:block></fo:block><fo:list-block id="id603836" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id603840" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destroys a <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link> object.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id603854" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id603866" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-weight="bold">Danger:</fo:inline> Destruction of a
			locked mutex is a serious programming error resulting in undefined
			behavior such as a program crash.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="recursive_try_mutex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class recursive_try_mutex</fo:block></fo:block><fo:block space-after="1em">Class recursive_try_mutex <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.TryMutex">TryMutex</fo:basic-link> concept.</fo:block></fo:block><fo:block>boost::recursive_try_mutex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id603919"><fo:block/><fo:block id="id603920" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> recursive_try_mutex : <fo:inline font-weight="bold">private</fo:inline> boost::noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_lock;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_try_lock;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="recursive_try_mutexconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id489606-bb">recursive_try_mutex</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id353219-bb">~recursive_try_mutex</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id604010"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.TryMutex">TryMutex</fo:basic-link> concept. 
			It should be used to synchronize access to shared resources using
			<fo:basic-link internal-destination="threads.concepts.recursive-locking-strategy">Recursive</fo:basic-link>
			locking mechanics.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For classes that model related mutex concepts, see 
			<fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link> and <fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For <fo:basic-link internal-destination="threads.concepts.unspecified-locking-strategy">Unspecified</fo:basic-link>
			locking mechanics, see <fo:basic-link internal-destination="mutex">mutex</fo:basic-link>,
			<fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link>, and <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link>.
			</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link> class supplies the following typedefs,
			which model the specified locking strategies:

			<fo:block span="none"><fo:block id="id604113" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;24.&#xA0;Supported Lock Types</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Lock Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Lock Concept</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_try_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTryLock">ScopedTryLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link> class uses a
			<fo:basic-link internal-destination="threads.concepts.recursive-locking-strategy">Recursive</fo:basic-link>
			locking strategy, so attempts to recursively lock a 
			<fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link> object
			succeed and an internal "lock count" is maintained. 
			Attempts to unlock a <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link> object
			by threads that don't own a lock on it result in
			<fo:inline font-weight="bold">undefined behavior</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Like all
			<fo:basic-link internal-destination="threads.concepts.mutex-models">mutex models</fo:basic-link>
			in <fo:inline font-weight="bold">Boost.Threads</fo:inline>, <fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link> leaves the 
			<fo:basic-link internal-destination="threads.concepts.sheduling-policies">scheduling policy</fo:basic-link>
			as <fo:basic-link internal-destination="threads.concepts.unspecified-scheduling-policy">Unspecified</fo:basic-link>. 
			Programmers should make no assumptions about the order in which
			waiting threads acquire a lock.</fo:block><fo:block id="id604252"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">recursive_try_mutex construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="recursive_try_mutexconstruct-copy-destruct"/><fo:inline font-family="monospace">recursive_try_mutex</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id604267" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id604274" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id604276" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id489606-bb"/>recursive_try_mutex();</fo:block></fo:block><fo:list-block id="id604290" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id604294" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Constructs a <fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link> object.
			</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id604308" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.
			</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id604321" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id604323" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id353219-bb"/>~recursive_try_mutex();</fo:block></fo:block><fo:list-block id="id604336" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id604340" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destroys a <fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link> object.
			</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id604355" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id604367" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-weight="bold">Danger:</fo:inline> Destruction of a
			locked mutex is a serious programming error resulting in undefined
			behavior such as a program crash.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="recursive_timed_mutex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class recursive_timed_mutex</fo:block></fo:block><fo:block space-after="1em">Class recursive_timed_mutex <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.TimedMutex">TimedMutex</fo:basic-link> concept.</fo:block></fo:block><fo:block>boost::recursive_timed_mutex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id604419"><fo:block/><fo:block id="id604421" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> recursive_timed_mutex : <fo:inline font-weight="bold">private</fo:inline> boost::noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_try_lock;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_timed_lock;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="recursive_timed_mutexconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id378769-bb">recursive_timed_mutex</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id304305-bb">~recursive_timed_mutex</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id604521"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.TimedMutex">TimedMutex</fo:basic-link> concept. 
			It should be used to synchronize access to shared resources using
			<fo:basic-link internal-destination="threads.concepts.recursive-locking-strategy">Recursive</fo:basic-link>
			locking mechanics.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For classes that model related mutex concepts, see 
			<fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link> and <fo:basic-link internal-destination="recursive_try_mutex">recursive_try_mutex</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For <fo:basic-link internal-destination="threads.concepts.unspecified-locking-strategy">Unspecified</fo:basic-link>
			locking mechanics, see <fo:basic-link internal-destination="mutex">mutex</fo:basic-link>,
			<fo:basic-link internal-destination="try_mutex">try_mutex</fo:basic-link>, and <fo:basic-link internal-destination="timed_mutex">timed_mutex</fo:basic-link>.
			</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link> class supplies the following typedefs,
			which model the specified locking strategies:

			<fo:block span="none"><fo:block id="id604624" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;25.&#xA0;Supported Lock Types</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Lock Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Lock Concept</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_try_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTryLock">ScopedTryLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_timed_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTimedLock">ScopedTimedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link> class uses a
			<fo:basic-link internal-destination="threads.concepts.recursive-locking-strategy">Recursive</fo:basic-link>
			locking strategy, so attempts to recursively lock a 
			<fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link> object
			succeed and an internal "lock count" is maintained. 
			Attempts to unlock a <fo:basic-link internal-destination="recursive_mutex">recursive_mutex</fo:basic-link> object
			by threads that don't own a lock on it result in
			<fo:inline font-weight="bold">undefined behavior</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Like all 
			<fo:basic-link internal-destination="threads.concepts.mutex-models">mutex models</fo:basic-link>
			in  <fo:inline font-weight="bold">Boost.Threads</fo:inline>, <fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link> leaves the 
			<fo:basic-link internal-destination="threads.concepts.sheduling-policies">scheduling policy</fo:basic-link>
			as <fo:basic-link internal-destination="threads.concepts.unspecified-scheduling-policy">Unspecified</fo:basic-link>. 
			Programmers should make no assumptions about the order in which
			waiting threads acquire a lock.</fo:block><fo:block id="id604776"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">recursive_timed_mutex construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="recursive_timed_mutexconstruct-copy-destruct"/><fo:inline font-family="monospace">recursive_timed_mutex</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id604792" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id604798" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id604800" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id378769-bb"/>recursive_timed_mutex();</fo:block></fo:block><fo:list-block id="id604814" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id604817" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Constructs a <fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link> object.
			</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id604832" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.
			</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id604844" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id604847" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id304305-bb"/>~recursive_timed_mutex();</fo:block></fo:block><fo:list-block id="id604860" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id604864" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destroys a <fo:basic-link internal-destination="recursive_timed_mutex">recursive_timed_mutex</fo:basic-link> object.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id604879" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id604891" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-weight="bold">Danger:</fo:inline> Destruction of a
			locked mutex is a serious programming error resulting in undefined
			behavior such as a program crash.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id283850"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/thread/read_write_mutex.hpp">boost/thread/read_write_mutex.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id604920" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> read_write_scheduling_policy {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:basic-link internal-destination="id285973">read_write_scheduling_policy</fo:basic-link>;
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="id285973"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Type read_write_scheduling_policy</fo:block></fo:block><fo:block space-after="1em">Type read_write_scheduling_policy <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specifies the 
				<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.inter-class">inter-class sheduling policy</fo:basic-link>
				to use when a set of threads try to obtain different types of
				locks simultaneously.</fo:block></fo:block><fo:block>boost::read_write_scheduling_policy::read_write_scheduling_policy</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id605033"><fo:block/><fo:block id="id605034" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">enum</fo:inline> read_write_scheduling_policy { writer_priority, reader_priority, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;alternating_many_reads, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;alternating_single_read };</fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="read_write_mutex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class read_write_mutex</fo:block></fo:block><fo:block space-after="1em">Class read_write_mutex <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.ReadWriteMutex">ReadWriteMutex</fo:basic-link> concept.</fo:block></fo:block><fo:block>boost::read_write_mutex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id605091"><fo:block/><fo:block id="id605092" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> read_write_mutex : <fo:inline font-weight="bold">private</fo:inline> boost::noncopyable,  <fo:inline font-style="italic">// Exposition only</fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">private</fo:inline> boost::noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_read_write_lock;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_read_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_write_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="read_write_mutexconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id418786-bb">read_write_mutex</fo:basic-link>(boost::read_write_scheduling_policy);
&#xA0;&#xA0;<fo:basic-link internal-destination="id502846-bb">~read_write_mutex</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id605208"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.ReadWriteMutex">ReadWriteMutex</fo:basic-link> concept. 
			It should be used to synchronize access to shared resources using
			<fo:basic-link internal-destination="threads.concepts.read-write-locking-strategies.unspecified">Unspecified</fo:basic-link>
			locking mechanics.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For classes that model related mutex concepts, see 
			<fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link> and <fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link> class supplies the following typedefs,
			which <fo:basic-link internal-destination="threads.concepts.read-write-lock-models">model</fo:basic-link>
			the specified locking strategies:

			<fo:block id="id605287" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Lock Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Lock Concept</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_read_write_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedReadWriteLock">ScopedReadWriteLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_read_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_write_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link> class uses an 
			<fo:basic-link internal-destination="threads.concepts.read-write-locking-strategies.unspecified">Unspecified</fo:basic-link>
			locking strategy, so attempts to recursively lock a <fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link>
			object or attempts to unlock one by threads that don't own a lock on it result in
			<fo:inline font-weight="bold">undefined behavior</fo:inline>.
			This strategy allows implementations to be as efficient as possible
			on any given platform. It is, however, recommended that
			implementations include debugging support to detect misuse when
			<fo:inline font-family="monospace">NDEBUG</fo:inline> is not defined.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Like all
			<fo:basic-link internal-destination="threads.concepts.read-write-mutex-models">read/write mutex models</fo:basic-link>
			in <fo:inline font-weight="bold">Boost.Threads</fo:inline>, <fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link> has two types of
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies">scheduling policies</fo:basic-link>, an 
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.inter-class">inter-class sheduling policy</fo:basic-link>
			between threads trying to obtain different types of locks and an
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.intra-class">intra-class sheduling policy</fo:basic-link>
			between threads trying to obtain the same type of lock.
			The <fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link> class allows the
			programmer to choose what
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.inter-class">inter-class sheduling policy</fo:basic-link>
			will be used; however, like all read/write mutex models, 
			<fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link> leaves the 
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.intra-class">intra-class sheduling policy</fo:basic-link> as 
			<fo:basic-link internal-destination="threads.concepts.read-write-locking-strategies.unspecified">Unspecified</fo:basic-link>.			
			</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id605503"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Note</fo:block><fo:block>Self-deadlock is virtually guaranteed if a thread tries to
			lock the same <fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link> multiple times
			unless all locks are read-locks (but see below)</fo:block></fo:block><fo:block id="id605516"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">read_write_mutex construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="read_write_mutexconstruct-copy-destruct"/><fo:inline font-family="monospace">read_write_mutex</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id605532" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id605539" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id605541" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id418786-bb"/>read_write_mutex(boost::read_write_scheduling_policy count);</fo:block></fo:block><fo:list-block id="id605556" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id605559" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Constructs a <fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link> object.
			</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id605574" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.
			</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id605586" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id605589" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id502846-bb"/>~read_write_mutex();</fo:block></fo:block><fo:list-block id="id605603" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id605606" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destroys a <fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link> object.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id605621" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id605633" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-weight="bold">Danger:</fo:inline> Destruction of a
			locked mutex is a serious programming error resulting in undefined
			behavior such as a program crash.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="try_read_write_mutex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class try_read_write_mutex</fo:block></fo:block><fo:block space-after="1em">Class try_read_write_mutex <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.TryReadWriteMutex">TryReadWriteMutex</fo:basic-link> concept.</fo:block></fo:block><fo:block>boost::try_read_write_mutex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id605685"><fo:block/><fo:block id="id605687" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> try_read_write_mutex : <fo:inline font-weight="bold">private</fo:inline> boost::noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_read_write_lock;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_try_read_write_lock;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_read_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_try_read_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_write_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_try_write_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="try_read_write_mutexconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id338115-bb">try_read_write_mutex</fo:basic-link>(boost::read_write_scheduling_policy);
&#xA0;&#xA0;<fo:basic-link internal-destination="id219377-bb">~try_read_write_mutex</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id605824"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.TryReadWriteMutex">TryReadWriteMutex</fo:basic-link> concept. 
			It should be used to synchronize access to shared resources using
			<fo:basic-link internal-destination="threads.concepts.read-write-locking-strategies.unspecified">Unspecified</fo:basic-link>
			locking mechanics.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For classes that model related mutex concepts, see 
			<fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link> and <fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link> class supplies the following typedefs,
			which <fo:basic-link internal-destination="threads.concepts.read-write-lock-models">model</fo:basic-link>
			the specified locking strategies:

			<fo:block id="id605901" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Lock Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Lock Concept</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_read_write_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedReadWriteLock">ScopedReadWriteLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_try_read_write_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTryReadWriteLock">ScopedTryReadWriteLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_read_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_try_read_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTryLock">ScopedTryLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_write_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_try_write_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTryLock">ScopedTryLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link> class uses an 
			<fo:basic-link internal-destination="threads.concepts.read-write-locking-strategies.unspecified">Unspecified</fo:basic-link>
			locking strategy, so attempts to recursively lock a <fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link>
			object or attempts to unlock one by threads that don't own a lock on it result in
			<fo:inline font-weight="bold">undefined behavior</fo:inline>.
			This strategy allows implementations to be as efficient as possible
			on any given platform. It is, however, recommended that
			implementations include debugging support to detect misuse when
			<fo:inline font-family="monospace">NDEBUG</fo:inline> is not defined.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Like all
			<fo:basic-link internal-destination="threads.concepts.read-write-mutex-models">read/write mutex models</fo:basic-link>
			in <fo:inline font-weight="bold">Boost.Threads</fo:inline>, <fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link> has two types of
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies">scheduling policies</fo:basic-link>, an 
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.inter-class">inter-class sheduling policy</fo:basic-link>
			between threads trying to obtain different types of locks and an
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.intra-class">intra-class sheduling policy</fo:basic-link>
			between threads trying to obtain the same type of lock.
			The <fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link> class allows the
			programmer to choose what
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.inter-class">inter-class sheduling policy</fo:basic-link>
			will be used; however, like all read/write mutex models, 
			<fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link> leaves the 
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.intra-class">intra-class sheduling policy</fo:basic-link> as 
			<fo:basic-link internal-destination="threads.concepts.unspecified-scheduling-policy">Unspecified</fo:basic-link>.			
			</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id606151"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Note</fo:block><fo:block>Self-deadlock is virtually guaranteed if a thread tries to
			lock the same <fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link> multiple times
			unless all locks are read-locks (but see below)</fo:block></fo:block><fo:block id="id606164"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">try_read_write_mutex construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="try_read_write_mutexconstruct-copy-destruct"/><fo:inline font-family="monospace">try_read_write_mutex</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id606180" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id606186" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id606189" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id338115-bb"/>try_read_write_mutex(boost::read_write_scheduling_policy count);</fo:block></fo:block><fo:list-block id="id606203" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id606207" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Constructs a <fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link> object.
			</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id606222" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.
			</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id606234" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id606236" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id219377-bb"/>~try_read_write_mutex();</fo:block></fo:block><fo:list-block id="id606250" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id606253" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destroys a <fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link> object.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id606268" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id606280" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-weight="bold">Danger:</fo:inline> Destruction of a
			locked mutex is a serious programming error resulting in undefined
			behavior such as a program crash.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="timed_read_write_mutex"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class timed_read_write_mutex</fo:block></fo:block><fo:block space-after="1em">Class timed_read_write_mutex <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.TimedReadWriteMutex">TimedReadWriteMutex</fo:basic-link> concept.</fo:block></fo:block><fo:block>boost::timed_read_write_mutex</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id606332"><fo:block/><fo:block id="id606334" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> timed_read_write_mutex {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_read_write_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_try_read_write_lock;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_timed_read_write_lock;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_read_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_try_read_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_timed_read_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_write_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_try_write_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">implementation-defined</fo:inline> scoped_timed_write_lock;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="timed_read_write_mutexconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id462287-bb">timed_read_write_mutex</fo:basic-link>(boost::read_write_scheduling_policy);
&#xA0;&#xA0;<fo:basic-link internal-destination="id536502-bb">~timed_read_write_mutex</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id606497"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link> class is a model of the 
			<fo:basic-link internal-destination="threads.concepts.TimedReadWriteMutex">TimedReadWriteMutex</fo:basic-link> concept. 
			It should be used to synchronize access to shared resources using
			<fo:basic-link internal-destination="threads.concepts.read-write-locking-strategies.unspecified">Unspecified</fo:basic-link>
			locking mechanics.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For classes that model related mutex concepts, see 
			<fo:basic-link internal-destination="read_write_mutex">read_write_mutex</fo:basic-link> and <fo:basic-link internal-destination="try_read_write_mutex">try_read_write_mutex</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link> class supplies the following typedefs,
			which <fo:basic-link internal-destination="threads.concepts.read-write-lock-models">model</fo:basic-link>
			the specified locking strategies:

			<fo:block id="id606574" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">Lock Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Lock Concept</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_read_write_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedReadWriteLock">ScopedReadWriteLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_try_read_write_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTryReadWriteLock">ScopedTryReadWriteLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_timed_read_write_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTimedReadWriteLock">ScopedTimedReadWriteLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_read_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_try_read_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTryLock">ScopedTryLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_timed_read_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTimedLock">ScopedTimedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_write_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedLock">ScopedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_try_write_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTryLock">ScopedTryLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>scoped_timed_write_lock</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:basic-link internal-destination="threads.concepts.ScopedTimedLock">ScopedTimedLock</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link> class uses an 
			<fo:basic-link internal-destination="threads.concepts.read-write-locking-strategies.unspecified">Unspecified</fo:basic-link>
			locking strategy, so attempts to recursively lock a <fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link>
			object or attempts to unlock one by threads that don't own a lock on it result in
			<fo:inline font-weight="bold">undefined behavior</fo:inline>.
			This strategy allows implementations to be as efficient as possible
			on any given platform. It is, however, recommended that
			implementations include debugging support to detect misuse when
			<fo:inline font-family="monospace">NDEBUG</fo:inline> is not defined.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Like all
			<fo:basic-link internal-destination="threads.concepts.read-write-mutex-models">read/write mutex models</fo:basic-link>
			in <fo:inline font-weight="bold">Boost.Threads</fo:inline>, <fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link> has two types of
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies">scheduling policies</fo:basic-link>, an 
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.inter-class">inter-class sheduling policy</fo:basic-link>
			between threads trying to obtain different types of locks and an
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.intra-class">intra-class sheduling policy</fo:basic-link>
			between threads trying to obtain the same type of lock.
			The <fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link> class allows the
			programmer to choose what
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.inter-class">inter-class sheduling policy</fo:basic-link>
			will be used; however, like all read/write mutex models, 
			<fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link> leaves the 
			<fo:basic-link internal-destination="threads.concepts.read-write-scheduling-policies.intra-class">intra-class sheduling policy</fo:basic-link> as 
			<fo:basic-link internal-destination="threads.concepts.unspecified-scheduling-policy">Unspecified</fo:basic-link>.			
			</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id606864"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Note</fo:block><fo:block>Self-deadlock is virtually guaranteed if a thread tries to
			lock the same <fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link> multiple times
			unless all locks are read-locks (but see below)</fo:block></fo:block><fo:block id="id606876"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">timed_read_write_mutex construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="timed_read_write_mutexconstruct-copy-destruct"/><fo:inline font-family="monospace">timed_read_write_mutex</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id606893" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id606899" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id606901" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id462287-bb"/>timed_read_write_mutex(boost::read_write_scheduling_policy count);</fo:block></fo:block><fo:list-block id="id606916" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id606920" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Constructs a <fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link> object.
			</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id606935" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.
			</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id606947" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id606949" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id536502-bb"/>~timed_read_write_mutex();</fo:block></fo:block><fo:list-block id="id606963" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id606966" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destroys a <fo:basic-link internal-destination="timed_read_write_mutex">timed_read_write_mutex</fo:basic-link> object.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id606981" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is in an unlocked state.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id606994" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-weight="bold">Danger:</fo:inline> Destruction of a
			locked mutex is a serious programming error resulting in undefined
			behavior such as a program crash.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id277856"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/thread/thread.hpp">boost/thread/thread.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id607023" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="thread">thread</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="thread_group">thread_group</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="thread"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class thread</fo:block></fo:block><fo:block space-after="1em">Class thread <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="thread">thread</fo:basic-link> class represents threads of
			execution, and provides the functionality to create and manage 
			threads within the <fo:inline font-weight="bold">Boost.Threads</fo:inline> library. See 
			<fo:basic-link internal-destination="threads.glossary">Glossary</fo:basic-link> for a precise description of 
			<fo:basic-link internal-destination="threads.glossary.thread">thread of execution</fo:basic-link>,
			and for definitions of threading-related terms and of thread states such as 
			<fo:basic-link internal-destination="threads.glossary.thread-state">blocked</fo:basic-link>.</fo:block></fo:block><fo:block>boost::thread</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id607126"><fo:block/><fo:block id="id607127" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> thread : <fo:inline font-weight="bold">private</fo:inline> boost::noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="threadconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id401409-bb">thread</fo:basic-link>();
&#xA0;&#xA0;<fo:inline font-weight="bold">explicit</fo:inline> <fo:basic-link internal-destination="id238497-bb">thread</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> boost::function0&lt;<fo:inline font-weight="bold">void</fo:inline>&gt;&amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id485614-bb">~thread</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id437199-bb">comparison</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id415233-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id453854-bb"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id471479-bb">modifier</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id479493-bb">join</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id413185-bb">static</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">static</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id490506-bb">sleep</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="xtime">xtime</fo:basic-link>&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">static</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id455757-bb">yield</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id607390"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A <fo:basic-link internal-destination="threads.glossary.thread">thread of execution</fo:basic-link>
			has an initial function. For the program's initial thread, the initial 
			function is <fo:inline font-family="monospace">main()</fo:inline>. For other threads, the initial 
			function is <fo:inline font-family="monospace">operator()</fo:inline> of the function object passed to
			the <fo:basic-link internal-destination="thread">thread</fo:basic-link> object's constructor.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A thread of execution  is said to be "finished" 
			or to have "finished execution" when its initial function returns or 
			is terminated. This includes completion of all thread cleanup 
			handlers, and completion of the normal C++ function return behaviors,
			such as destruction of automatic storage (stack) objects and releasing 
			any associated implementation resources.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A thread object has an associated state which is either
			"joinable" or "non-joinable".</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Except as described below, the policy used by an implementation
			of <fo:inline font-weight="bold">Boost.Threads</fo:inline> to schedule transitions between thread states is 
			unspecified.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id607454"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Note</fo:block><fo:block>Just as the lifetime of a file may be different from the
			lifetime of an <fo:inline font-family="monospace">iostream</fo:inline> object which represents the file, the lifetime
			of a thread of execution may be different from the 
			<fo:basic-link internal-destination="thread">thread</fo:basic-link> object which represents the thread of 
			execution. In particular, after a call to <fo:inline font-family="monospace">join()</fo:inline>,
			the thread of execution will no longer exist even though the 
			<fo:basic-link internal-destination="thread">thread</fo:basic-link> object continues to exist until the 
			end of its normal lifetime. The converse is also possible; if 
			a <fo:basic-link internal-destination="thread">thread</fo:basic-link> object is destroyed without 
			<fo:inline font-family="monospace">join()</fo:inline> first having been called, the thread of execution 
			continues until its initial function completes.</fo:block></fo:block></fo:block><fo:block id="id607509"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">thread construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="threadconstruct-copy-destruct"/><fo:inline font-family="monospace">thread</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id607524" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id607530" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id607532" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id401409-bb"/>thread();</fo:block></fo:block><fo:list-block id="id607546" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id607549" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Constructs a <fo:basic-link internal-destination="thread">thread</fo:basic-link> object 
			representing the current thread of execution.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id607565" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is non-joinable.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id607577" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-weight="bold">Danger:</fo:inline><fo:inline font-family="monospace">*this</fo:inline> is valid only within the current thread.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id607594" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id607596" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">explicit</fo:inline> <fo:wrapper id="id238497-bb"/>thread(<fo:inline font-weight="bold">const</fo:inline> boost::function0&lt;<fo:inline font-weight="bold">void</fo:inline>&gt;&amp; threadfunc);</fo:block></fo:block><fo:list-block id="id607631" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id607634" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
				Starts a new thread of execution and constructs a 
				<fo:basic-link internal-destination="thread">thread</fo:basic-link> object representing it. 
				Copies <fo:inline font-family="monospace">threadfunc</fo:inline> (which in turn copies
				the function object wrapped by <fo:inline font-family="monospace">threadfunc</fo:inline>) 
				to an internal location which persists for the lifetime 
				of the new thread of execution. Calls <fo:inline font-family="monospace">operator()</fo:inline>
				on the copy of the <fo:inline font-family="monospace">threadfunc</fo:inline> function object 
				in the new thread of execution.
			</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id607680" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is joinable.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id607692" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">boost::thread_resource_error</fo:inline> if a new thread
			of execution cannot be started.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id607705" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id607707" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id485614-bb"/>~thread();</fo:block></fo:block><fo:list-block id="id607721" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id607724" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destroys <fo:inline font-family="monospace">*this</fo:inline>. The actual thread of 
			execution may continue to execute after the 
			<fo:basic-link internal-destination="thread">thread</fo:basic-link> object has been destroyed.
			</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id607747" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>If <fo:inline font-family="monospace">*this</fo:inline> is joinable the actual thread 
			of execution becomes "detached". Any resources used 
			by the thread will be reclaimed when the thread of execution 
			completes. To ensure such a thread of execution runs to completion
			before the <fo:basic-link internal-destination="thread">thread</fo:basic-link> object is destroyed, call
			<fo:inline font-family="monospace">join()</fo:inline>.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id607778"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">thread comparison</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id437199-bb"/><fo:inline font-family="monospace">thread</fo:inline> comparison</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id607793" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id607799" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id607801" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id415233-bb"/><fo:inline font-weight="bold">operator</fo:inline>==( rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id607834" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id607837" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The thread is non-terminated or <fo:inline font-family="monospace">*this</fo:inline>
				is joinable.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id607851" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">true</fo:inline> if <fo:inline font-family="monospace">*this</fo:inline> and 
				<fo:inline font-family="monospace">rhs</fo:inline> represent the same thread of 
				execution.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id607876" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id607879" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id453854-bb"/><fo:inline font-weight="bold">operator</fo:inline>!=( rhs) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id607911" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id607915" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The thread is non-terminated or <fo:inline font-family="monospace">*this</fo:inline>
				is joinable.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id607929" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">!(*this==rhs)</fo:inline>.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id607940"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">thread modifier</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id471479-bb"/><fo:inline font-family="monospace">thread</fo:inline> modifier</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id607955" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id607961" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id607964" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id479493-bb"/>join();</fo:block></fo:block><fo:list-block id="id607985" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id607988" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> is joinable.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id608000" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The current thread of execution blocks until the 
				initial function of the thread of execution represented by 
				<fo:inline font-family="monospace">*this</fo:inline> finishes and all resources are 
				reclaimed.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id608015" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>If <fo:inline font-family="monospace">*this == thread()</fo:inline> the result is 
				implementation-defined. If the implementation doesn't
				detect this the result will be 
				<fo:basic-link internal-destination="threads.glossary.deadlock">deadlock</fo:basic-link>.
				</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id608040"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">thread static</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id413185-bb"/><fo:inline font-family="monospace">thread</fo:inline> static</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id608055" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id608060" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id608063" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">static</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id490506-bb"/>sleep(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="xtime">xtime</fo:basic-link>&amp; xt);</fo:block></fo:block><fo:list-block id="id608104" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id608108" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The current thread of execution blocks until 
				<fo:inline font-family="monospace">xt</fo:inline> is reached.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id608121" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id608124" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">static</fo:inline> <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id455757-bb"/>yield();</fo:block></fo:block><fo:list-block id="id608151" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id608154" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The current thread of execution is placed in the
				<fo:basic-link internal-destination="threads.glossary.thread-state">ready</fo:basic-link> 
				state.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id608170" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Allow the current thread to give up the rest of its 
					time slice (or other scheduling quota) to another thread. 
					Particularly useful in non-preemptive implementations.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="thread_group"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class thread_group</fo:block></fo:block><fo:block space-after="1em">Class thread_group <fo:inline font-family="serif">--</fo:inline> 
			The <fo:basic-link internal-destination="thread_group">thread_group</fo:basic-link> class provides a container
			for easy grouping of threads to simplify several common thread 
			creation and management idioms.
		</fo:block><fo:block>boost::thread_group</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id608210"><fo:block/><fo:block id="id608212" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> thread_group : <fo:inline font-weight="bold">private</fo:inline> boost::noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="thread_groupconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id529728-bb">thread_group</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id445605-bb">~thread_group</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id223199-bb">modifier</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="thread">thread</fo:basic-link>* <fo:basic-link internal-destination="id397277-bb">create_thread</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> boost::function0&lt;<fo:inline font-weight="bold">void</fo:inline>&gt;&amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id406849-bb">add_thread</fo:basic-link>(<fo:basic-link internal-destination="thread">thread</fo:basic-link>* thrd);
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id487039-bb">remove_thread</fo:basic-link>(<fo:basic-link internal-destination="thread">thread</fo:basic-link>* thrd);
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id318007-bb">join_all</fo:basic-link>();
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id608387"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id608391"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">thread_group construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="thread_groupconstruct-copy-destruct"/><fo:inline font-family="monospace">thread_group</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id608406" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id608412" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id608415" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id529728-bb"/>thread_group();</fo:block></fo:block><fo:list-block id="id608428" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id608432" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Constructs an empty <fo:basic-link internal-destination="thread_group">thread_group</fo:basic-link>
			container.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id608447" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id608449" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id445605-bb"/>~thread_group();</fo:block></fo:block><fo:list-block id="id608464" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id608467" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destroys each contained thread object. Destroys <fo:inline font-family="monospace">*this</fo:inline>.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id608481" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Behavior is undefined if another thread references 
			<fo:inline font-family="monospace">*this </fo:inline> during the execution of the destructor.
			</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id608495"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">thread_group modifier</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id223199-bb"/><fo:inline font-family="monospace">thread_group</fo:inline> modifier</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id608509" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id608515" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id608518" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="thread">thread</fo:basic-link>* <fo:wrapper id="id397277-bb"/>create_thread(<fo:inline font-weight="bold">const</fo:inline> boost::function0&lt;<fo:inline font-weight="bold">void</fo:inline>&gt;&amp; threadfunc);</fo:block></fo:block><fo:list-block id="id608555" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id608558" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Creates a new <fo:basic-link internal-destination="thread">thread</fo:basic-link> object 
				that executes <fo:inline font-family="monospace">threadfunc</fo:inline> and adds it to the 
				<fo:inline font-family="monospace">thread_group</fo:inline> container object's list of managed
				<fo:basic-link internal-destination="thread">thread</fo:basic-link> objects.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id608595" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Pointer to the newly created 
				<fo:basic-link internal-destination="thread">thread</fo:basic-link> object.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id608609" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id608612" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id406849-bb"/>add_thread(<fo:basic-link internal-destination="thread">thread</fo:basic-link>* thrd thrd);</fo:block></fo:block><fo:list-block id="id608641" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id608644" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Adds <fo:inline font-family="monospace">thrd</fo:inline> to the 
				<fo:basic-link internal-destination="thread_group">thread_group</fo:basic-link> object's list of managed 
				<fo:basic-link internal-destination="thread">thread</fo:basic-link> objects. The <fo:inline font-family="monospace">thrd</fo:inline> 
				object must have been allocated via <fo:inline font-family="monospace">operator new</fo:inline> and will 
				be deleted when the group is destroyed.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id608688" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id608691" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id487039-bb"/>remove_thread(<fo:basic-link internal-destination="thread">thread</fo:basic-link>* thrd thrd);</fo:block></fo:block><fo:list-block id="id608719" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id608723" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Removes <fo:inline font-family="monospace">thread</fo:inline> from <fo:inline font-family="monospace">*this</fo:inline>'s
				list of managed <fo:basic-link internal-destination="thread">thread</fo:basic-link> objects.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id608751" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-weight="bold">???</fo:inline> if 
				<fo:inline font-family="monospace">thrd</fo:inline> is not in <fo:inline font-family="monospace">*this</fo:inline>'s list
				of managed <fo:basic-link internal-destination="thread">thread</fo:basic-link> objects.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id608783" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id608786" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id318007-bb"/>join_all();</fo:block></fo:block><fo:list-block id="id608807" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id608810" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Calls <fo:inline font-family="monospace">join()</fo:inline> on each of the managed 
				<fo:basic-link internal-destination="thread">thread</fo:basic-link> objects.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id479200"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/thread/tss.hpp">boost/thread/tss.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id608847" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="thread_specific_ptr">thread_specific_ptr</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="thread_specific_ptr"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class thread_specific_ptr</fo:block></fo:block><fo:block space-after="1em">Class thread_specific_ptr <fo:inline font-family="serif">--</fo:inline> 
				The <fo:basic-link internal-destination="thread_specific_ptr">thread_specific_ptr</fo:basic-link> class defines 
				an interface for using thread specific storage.
			</fo:block><fo:block>boost::thread_specific_ptr</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id608902"><fo:block/><fo:block id="id608903" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> thread_specific_ptr : <fo:inline font-weight="bold">private</fo:inline> boost::noncopyable   <fo:inline font-style="italic">// Exposition only</fo:inline>
{
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="thread_specific_ptrconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id342861-bb">thread_specific_ptr</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id468382-bb">thread_specific_ptr</fo:basic-link>(<fo:inline font-weight="bold">void</fo:inline> (*cleanup)(<fo:inline font-weight="bold">void</fo:inline>*));
&#xA0;&#xA0;<fo:basic-link internal-destination="id418172-bb">~thread_specific_ptr</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id459347-bb">modifier functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;T* <fo:basic-link internal-destination="id302786-bb">release</fo:basic-link>();
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id276165-bb">reset</fo:basic-link>(T* = 0);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id353265-bb">observer functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;T* <fo:basic-link internal-destination="id498383-bb">get</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;T* <fo:basic-link internal-destination="id283399-bb"><fo:inline font-weight="bold">operator</fo:inline>-&gt;</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;T&amp; <fo:basic-link internal-destination="id230286-bb"><fo:inline font-weight="bold">operator</fo:inline>*()</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id609112"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Thread specific storage is data associated with 
				individual threads and is often used to make operations
				that rely on global data 
				<fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link>.
				</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Template <fo:basic-link internal-destination="thread_specific_ptr">thread_specific_ptr</fo:basic-link> 
				stores a pointer to an object obtained on a thread-by-thread
				basis and calls a specified cleanup handler on the contained
				pointer when the thread terminates. The cleanup handlers are
				called in the reverse order of construction of the 
				<fo:basic-link internal-destination="thread_specific_ptr">thread_specific_ptr</fo:basic-link>s, and for the 
				initial thread are called by the destructor, providing the 
				same ordering guarantees as for normal declarations. Each
				thread initially stores the null pointer in each
				<fo:basic-link internal-destination="thread_specific_ptr">thread_specific_ptr</fo:basic-link> instance.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The template <fo:basic-link internal-destination="thread_specific_ptr">thread_specific_ptr</fo:basic-link>
				is useful in the following cases:
					<fo:list-block id="id609179" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id609180" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>An interface was originally written assuming 
						a single thread of control and it is being ported to a
						multithreaded environment.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609185" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Each thread of control invokes sequences of
						methods that share data that are physically unique
						for each thread, but must be logically accessed
						through a globally visible access point instead of 
						being explicitly passed.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id609191"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">thread_specific_ptr construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="thread_specific_ptrconstruct-copy-destruct"/><fo:inline font-family="monospace">thread_specific_ptr</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id609208" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id609214" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id609216" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id342861-bb"/>thread_specific_ptr();</fo:block></fo:block><fo:list-block id="id609230" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id609234" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The expression <fo:inline font-family="monospace">delete get()</fo:inline> is well
				formed.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609247" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>A thread-specific data key is allocated and visible to
				all threads in the process. Upon creation, the value 
				<fo:inline font-family="monospace">NULL</fo:inline> will be associated with the new key in all 
				active threads. A cleanup method is registered with the key 
				that will call <fo:inline font-family="monospace">delete</fo:inline> on the value associated 
				with the key for a thread when it exits. When a thread exits,
				if a key has a registered cleanup method and the thread has a
				non-<fo:inline font-family="monospace">NULL</fo:inline> value associated with that key, the value
				of the key is set to <fo:inline font-family="monospace">NULL</fo:inline> and then the cleanup 
				method is called with the previously associated value as its 
				sole argument. The order in which registered cleanup methods 
				are called when a thread exits is undefined. If after all the
				cleanup methods have been called for all non-<fo:inline font-family="monospace">NULL</fo:inline>
				values, there are still some non-<fo:inline font-family="monospace">NULL</fo:inline> values
				with associated cleanup handlers the result is undefined
				behavior.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609302" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="thread_resource_error">boost::thread_resource_error</fo:basic-link> if
				the necessary resources can not be obtained.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609317" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>There may be an implementation specific limit to the 
				number of thread specific storage objects that can be created,
				and this limit may be small.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609326" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The most common need for cleanup will be to call 
				<fo:inline font-family="monospace">delete</fo:inline> on the associated value. If other forms
				of cleanup are required the overloaded constructor should be
				called instead.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609342" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id609345" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id468382-bb"/>thread_specific_ptr(<fo:inline font-weight="bold">void</fo:inline> (*cleanup)(<fo:inline font-weight="bold">void</fo:inline>*) cleanup);</fo:block></fo:block><fo:list-block id="id609371" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id609375" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>A thread-specific data key is allocated and visible to
				all threads in the process. Upon creation, the value 
				<fo:inline font-family="monospace">NULL</fo:inline> will be associated with the new key in all 
				active threads. The <fo:inline font-family="monospace">cleanup</fo:inline> method is registered
				with the key and will be called for a thread with the value 
				associated with the key for that thread when it exits. When a
				thread exits, if a key has a registered cleanup method and the
				thread has a non-<fo:inline font-family="monospace">NULL</fo:inline> value associated with that
				key, the value of the key is set to <fo:inline font-family="monospace">NULL</fo:inline> and then
				the cleanup method is called with the previously associated
				value as its sole argument. The order in which registered
				cleanup methods are called when a thread exits is undefined.
				If after all the cleanup methods have been called for all 
				non-<fo:inline font-family="monospace">NULL</fo:inline> values, there are still some 
				non-<fo:inline font-family="monospace">NULL</fo:inline> values with associated cleanup handlers
				the result is undefined behavior.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609435" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="thread_resource_error">boost::thread_resource_error</fo:basic-link> if
				the necessary resources can not be obtained.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609450" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>There may be an implementation specific limit to the 
				number of thread specific storage objects that can be created,
				 and this limit may be small.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609459" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>There is the occasional need to register 
				 specialized cleanup methods, or to register no cleanup method
				 at all (done by passing <fo:inline font-family="monospace">NULL</fo:inline> to this constructor.
				 </fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609475" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id609477" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id418172-bb"/>~thread_specific_ptr();</fo:block></fo:block><fo:list-block id="id609491" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id609494" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Deletes the thread-specific data key allocated by the
				constructor. The thread-specific data values associated with
				the key need not be <fo:inline font-family="monospace">NULL</fo:inline>. It is the responsibility
				of the application to perform any cleanup actions for data
				associated with the key.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609511" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Does not destroy any data that may be stored in any
				thread's thread specific storage. For this reason you should
				not destroy a <fo:basic-link internal-destination="thread_specific_ptr">thread_specific_ptr</fo:basic-link> object
				until you are certain there are no threads running that have
				made use of its thread specific storage.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609530" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Associated data is not cleaned up because registered
				cleanup methods need to be run in the thread that allocated the
				associated data to be guarranteed to work correctly. There's no
				safe way to inject the call into another thread's execution
				path, making it impossible to call the cleanup methods safely.
				</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id609542"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">thread_specific_ptr modifier functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id459347-bb"/><fo:inline font-family="monospace">thread_specific_ptr</fo:inline> modifier functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id609558" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id609563" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id609566" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">T* <fo:wrapper id="id302786-bb"/>release();</fo:block></fo:block><fo:list-block id="id609583" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id609586" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> holds the null pointer
					for the current thread.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609599" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">this-&gt;get()</fo:inline> prior to the call.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609611" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>This method provides a mechanism for the user to
					relinquish control of the data associated with the 
					thread-specific key.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609620" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id609622" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id276165-bb"/>reset(T* p = 0);</fo:block></fo:block><fo:list-block id="id609643" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id609647" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>If <fo:inline font-family="monospace">this-&gt;get() != p &amp;&amp; 
					this-&gt;get() != NULL</fo:inline> then call the 
					associated cleanup function.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609661" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">*this</fo:inline> holds the pointer 
					<fo:inline font-family="monospace">p</fo:inline> for the current thread.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id609680"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">thread_specific_ptr observer functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id353265-bb"/><fo:inline font-family="monospace">thread_specific_ptr</fo:inline> observer functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id609694" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id609700" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id609703" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">T* <fo:wrapper id="id498383-bb"/>get() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id609726" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id609729" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The object stored in thread specific storage for
					the current thread for <fo:inline font-family="monospace">*this</fo:inline>.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609743" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Each thread initially returns 0.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609750" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id609753" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">T* <fo:wrapper id="id283399-bb"/><fo:inline font-weight="bold">operator</fo:inline>-&gt;() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id609780" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id609784" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">this-&gt;get()</fo:inline>.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609795" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id609798" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">T&amp; <fo:wrapper id="id230286-bb"/><fo:inline font-weight="bold">operator</fo:inline>*()() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id609826" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id609830" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">this-&gt;get() != 0</fo:inline></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id609841" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">this-&gt;get()</fo:inline>.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id253046"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/thread/xtime.hpp">boost/thread/xtime.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id609868" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">enum</fo:inline> <fo:basic-link internal-destination="id451827">xtime_clock_types</fo:basic-link>;

&#xA0;&#xA0;<fo:inline font-weight="bold">struct</fo:inline> <fo:basic-link internal-destination="xtime">xtime</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="xtime_get">xtime_get</fo:basic-link>(<fo:basic-link internal-destination="xtime">xtime</fo:basic-link>*, <fo:inline font-weight="bold">int</fo:inline>);
}</fo:block><fo:block break-before="page"><fo:block id="id451827"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Type xtime_clock_types</fo:block></fo:block><fo:block space-after="1em">Type xtime_clock_types <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Specifies the clock type to use when creating
			an object of type <fo:basic-link internal-destination="xtime">xtime</fo:basic-link>.</fo:block></fo:block><fo:block>boost::xtime_clock_types</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id609968"><fo:block/><fo:block id="id609969" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">enum</fo:inline> xtime_clock_types { TIME_UTC };</fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="xtime"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Struct xtime</fo:block></fo:block><fo:block space-after="1em">Struct xtime <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An object of type <fo:basic-link internal-destination="xtime">xtime</fo:basic-link>
			defines a time that is used to perform high-resolution time operations.
			This is a temporary solution that will be replaced by a more robust time 
			library once available in Boost.</fo:block></fo:block><fo:block>boost::xtime</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id610012"><fo:block/><fo:block id="id610013" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">struct</fo:inline> xtime {

&#xA0;&#xA0;<fo:inline font-style="italic">platform-specific-type</fo:inline> sec;
};

<fo:inline font-style="italic">// <fo:basic-link internal-destination="id484380-bb">creation</fo:basic-link></fo:inline>
<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="xtime_get">xtime_get</fo:basic-link>(<fo:basic-link internal-destination="xtime">xtime</fo:basic-link>*, <fo:inline font-weight="bold">int</fo:inline>);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id610070"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="xtime">xtime</fo:basic-link> type is used to represent a point on 
			some time scale or a duration in time. This type may be proposed for the C standard by 
			Markus Kuhn. <fo:inline font-weight="bold">Boost.Threads</fo:inline> provides only a very minimal implementation of this
			proposal; it is expected that a full implementation (or some other time
			library) will be provided in Boost as a separate library, at which time <fo:inline font-weight="bold">Boost.Threads</fo:inline>
			will deprecate its own implementation.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Note</fo:inline> that the resolution is 
			implementation specific. For many implementations the best resolution 
			of time is far more than one nanosecond, and even when the resolution 
			is reasonably good, the latency of a call to <fo:inline font-family="monospace">xtime_get()</fo:inline>
			may be significant. For maximum portability, avoid durations of less than
			one second.</fo:block><fo:block id="id610124"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">xtime creation</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id484380-bb"/><fo:inline font-family="monospace">xtime</fo:inline> creation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id610139" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id610145" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id610147" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="xtime_get"/>xtime_get(<fo:basic-link internal-destination="xtime">xtime</fo:basic-link>* xtp, <fo:inline font-weight="bold">int</fo:inline> clock_type);</fo:block></fo:block><fo:list-block id="id610182" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id610186" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">xtp</fo:inline> represents the current point in
					time as a duration since the epoch specified by
					<fo:inline font-family="monospace">clock_type</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id610207" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">clock_type</fo:inline> if successful, otherwise 0.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.faq"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Frequently Asked Questions</fo:marker><fo:block font-size="17.28pt">Frequently Asked Questions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id610234"><fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2.5em"><fo:list-item id="id610235" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Are lock objects <fo:basic-link internal-destination="threads.glossary.thread-safe">thread safe</fo:basic-link>?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">No!</fo:inline> Lock objects are not meant to
		be shared between threads. They are meant to be short-lived objects
		created on automatic storage within a code block. Any other usage is
		just likely to lead to errors and won't really be of actual benefit anyway.
		Share <fo:basic-link internal-destination="threads.concepts.mutexes">Mutexes</fo:basic-link>, not
		Locks. For more information see the <fo:basic-link internal-destination="threads.rationale.locks">rationale</fo:basic-link> behind the
		design for lock objects.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id610283" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Why was <fo:inline font-weight="bold">Boost.Threads</fo:inline> modeled after (specific library
		name)?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It wasn't. <fo:inline font-weight="bold">Boost.Threads</fo:inline> was designed from scratch. Extensive
		design discussions involved numerous people representing a wide range of
		experience across many platforms. To ensure portability, the initial
		implements were done in parallel using POSIX Threads and the Win32
		threading API. But the <fo:inline font-weight="bold">Boost.Threads</fo:inline> design is very much in the spirit
		of C++, and thus doesn't model such C based APIs.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id610319" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Why wasn't <fo:inline font-weight="bold">Boost.Threads</fo:inline> modeled after (specific library
	    name)?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Existing C++ libraries either seemed dangerous (often failing to
		take advantage of prior art to reduce errors) or had excessive
		dependencies on library components unrelated to threading. Existing C
		libraries couldn't meet our C++ requirements, and were also missing
		certain features. For instance, the WIN32 thread API lacks condition
		variables, even though these are critical for the important Monitor
		pattern [<fo:basic-link internal-destination="threads.bib.SchmidtStalRohnertBuschmann">SchmidtStalRohnertBuschmann</fo:basic-link>].</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id610356" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Why do <fo:basic-link internal-destination="threads.concepts.mutexes">Mutexes</fo:basic-link>
		have noncopyable semantics?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To ensure that <fo:basic-link internal-destination="threads.glossary.deadlock">deadlocks</fo:basic-link> don't occur. The
		only logical form of copy would be to use some sort of shallow copy
		semantics in which multiple mutex objects could refer to the same mutex
		state. This means that if ObjA has a mutex object as part of its state
		and ObjB is copy constructed from it, then when ObjB::foo() locks the
		mutex it has effectively locked ObjA as well. This behavior can result
		in deadlock. Other copy semantics result in similar problems (if you
		think you can prove this to be wrong then supply us with an alternative
		and we'll reconsider).</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id610391" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">How can you prevent <fo:basic-link internal-destination="threads.glossary.deadlock">deadlock</fo:basic-link> from occurring when
		a thread must lock multiple mutexes?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Always lock them in the same order. One easy way of doing this is
		to use each mutex's address to determine the order in which they are
		locked. A future <fo:inline font-weight="bold">Boost.Threads</fo:inline> concept may wrap this pattern up in a
		reusable class.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id610420" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Don't noncopyable <fo:basic-link internal-destination="threads.concepts.mutexes">Mutex</fo:basic-link> semantics mean that a
		class with a mutex member will be noncopyable as well?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">No, but what it does mean is that the compiler can't generate a
		copy constructor and assignment operator, so they will have to be coded
		explicitly. This is a <fo:inline font-weight="bold">good thing</fo:inline>,
		however, since the compiler generated operations would not be <fo:basic-link internal-destination="threads.glossary.thread-safe">thread-safe</fo:basic-link>. The following
		is a simple example of a class with copyable semantics and internal
        synchronization through a mutex member.</fo:block><fo:block id="id610460" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
class counter
{
public:
   // Doesn't need synchronization since there can be no references to *this
   // until after it's constructed!
   explicit counter(int initial_value)
      : m_value(initial_value)
   {
   }
   // We only need to synchronize other for the same reason we don't have to
   // synchronize on construction!
   counter(const counter&amp; other)
   {
      boost::mutex::scoped_lock scoped_lock(other.m_mutex);
      m_value = other.m_value;
   }
   // For assignment we need to synchronize both objects!
   const counter&amp; operator=(const counter&amp; other)
   {
      if (this == &amp;other)
         return *this;
      boost::mutex::scoped_lock lock1(&amp;m_mutex &lt; &amp;other.m_mutex ? m_mutex : other.m_mutex);
      boost::mutex::scoped_lock lock2(&amp;m_mutex &gt; &amp;other.m_mutex ? m_mutex : other.m_mutex);
      m_value = other.m_value;
      return *this;
   }
   int value() const
   {
      boost::mutex::scoped_lock scoped_lock(m_mutex);
      return m_value;
   }
   int increment()
   {
      boost::mutex::scoped_lock scoped_lock(m_mutex);
      return ++m_value;
   }
private:
   mutable boost::mutex m_mutex;
   int m_value;
};
</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id610492" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">How can you lock a <fo:basic-link internal-destination="threads.concepts.mutexes">Mutex</fo:basic-link> member in a const member
		function, in order to implement the Monitor Pattern?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The Monitor Pattern [<fo:basic-link internal-destination="threads.bib.SchmidtStalRohnertBuschmann">SchmidtStalRohnertBuschmann</fo:basic-link>] mutex
		should simply be declared as mutable. See the example code above. The
		internal state of mutex types could have been made mutable, with all
		lock calls made via const functions, but this does a poor job of
		documenting the actual semantics (and in fact would be incorrect since
		the logical state of a locked mutex clearly differs from the logical
		state of an unlocked mutex). Declaring a mutex member as mutable clearly
		documents the intended semantics.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id610533" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>8.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Why supply <fo:basic-link internal-destination="condition">boost::condition</fo:basic-link> variables rather than
		event variables?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Condition variables result in user code much less prone to <fo:basic-link internal-destination="threads.glossary.race-condition">race conditions</fo:basic-link> than
		event variables. See <fo:basic-link internal-destination="threads.rationale.events">the section called &#x201C;Rationale for not providing <fo:inline font-style="italic">Event Variables</fo:inline>&#x201D;</fo:basic-link> 
		for analysis. Also see [<fo:basic-link internal-destination="threads.bib.Hoare74">Hoare74</fo:basic-link>] and [<fo:basic-link internal-destination="threads.bib.SchmidtStalRohnertBuschmann">SchmidtStalRohnertBuschmann</fo:basic-link>].
		</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id610594" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>9.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Why isn't thread cancellation or termination provided?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There's a valid need for thread termination, so at some point
		<fo:inline font-weight="bold">Boost.Threads</fo:inline> probably will include it, but only after we can find a
		truly safe (and portable) mechanism for this concept.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id610613" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>10.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Is it safe for threads to share automatic storage duration (stack)
		objects via pointers or references?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Only if you can guarantee that the lifetime of the stack object
		will not end while other threads might still access the object. Thus the
		safest practice is to avoid sharing stack objects, particularly in
		designs where threads are created and destroyed dynamically. Restrict
		sharing of stack objects to simple designs with very clear and
		unchanging function and thread lifetimes. (Suggested by Darryl
		Green).</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id610630" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>11.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Why has class semaphore disappeared?</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block/></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Semaphore was removed as too error prone. The same effect can be
		achieved with greater safety by the combination of a mutex and a
		condition variable.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="thread.configuration"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Configuration</fo:marker><fo:block font-size="17.28pt">Configuration</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> uses several configuration macros in &lt;boost/config.hpp&gt;,
	as well as configuration macros meant to be supplied by the application. These
	macros are documented here.
	</fo:block><fo:block id="thread.configuration.public"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Library Defined Public Macros</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	These macros are defined by <fo:inline font-weight="bold">Boost.Threads</fo:inline> but are expected to be used
	by application code.
		</fo:block><fo:block id="id610689" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Macro</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Meaning</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>BOOST_HAS_THREADS</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>
	Indicates that threading support is available. This means both that there
	is a platform specific implementation for <fo:inline font-weight="bold">Boost.Threads</fo:inline> and that
	threading support has been enabled in a platform specific manner. For instance,
	on the Win32 platform there's an implementation for <fo:inline font-weight="bold">Boost.Threads</fo:inline>
	but unless the program is compiled against one of the multithreading runtimes
	(often determined by the compiler predefining the macro _MT) the BOOST_HAS_THREADS
	macro remains undefined.
						</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="thread.configuration.implementation"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Library Defined Implementation Macros</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	These macros are defined by <fo:inline font-weight="bold">Boost.Threads</fo:inline> and are implementation details
	of interest only to implementors.
		</fo:block><fo:block id="id610750" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Macro</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Meaning</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>BOOST_HAS_WINTHREADS</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	Indicates that the platform has the Microsoft Win32 threading libraries,
	and that they should be used to implement <fo:inline font-weight="bold">Boost.Threads</fo:inline>.
			            </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>BOOST_HAS_PTHREADS</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	Indicates that the platform has the POSIX pthreads libraries, and that
	they should be used to implement <fo:inline font-weight="bold">Boost.Threads</fo:inline>.
						</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>BOOST_HAS_FTIME</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>
	Indicates that the implementation should use GetSystemTimeAsFileTime()
	and the FILETIME type to calculate the current time. This is an implementation
	detail used by boost::detail::getcurtime().
						</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>BOOST_HAS_GETTTIMEOFDAY</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>
	Indicates that the implementation should use gettimeofday() to calculate
	the current time. This is an implementation detail used by boost::detail::getcurtime().
						</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block><fo:block id="thread.build"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Build</fo:marker><fo:block font-size="17.28pt">Build</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	How you build the <fo:inline font-weight="bold">Boost.Threads</fo:inline> libraries, and how you build your own applications
	that use those libraries, are some of the most frequently asked questions. Build
	processes are difficult to deal with in a portable manner. That's one reason
	why <fo:inline font-weight="bold">Boost.Threads</fo:inline> makes use of <fo:inline font-weight="bold">Boost.Build</fo:inline>.
	In general you should refer to the documentation for <fo:inline font-weight="bold">Boost.Build</fo:inline>.
	This document will only supply you with some simple usage examples for how to
	use <fo:inline font-style="italic">bjam</fo:inline> to build and test <fo:inline font-weight="bold">Boost.Threads</fo:inline>. In addition, this document
	will try to explain the build requirements so that users may create their own
	build processes (for instance, create an IDE specific project), both for building
	and testing <fo:inline font-weight="bold">Boost.Threads</fo:inline>, as well as for building their own projects using
	<fo:inline font-weight="bold">Boost.Threads</fo:inline>.
	</fo:block><fo:block id="thread.build.building"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Building the <fo:inline font-weight="bold">Boost.Threads</fo:inline> Libraries</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	To build the <fo:inline font-weight="bold">Boost.Threads</fo:inline> libraries using <fo:inline font-weight="bold">Boost.Build</fo:inline>, simply change to the
	directory <fo:inline font-style="italic">boost_root</fo:inline>/libs/thread/build and execute the command:
		<fo:block id="id610930" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">bjam -sTOOLS=<fo:inline font-style="italic">toolset</fo:inline></fo:block>
	This will create the debug and the release builds of the <fo:inline font-weight="bold">Boost.Threads</fo:inline> library.
	<fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id610947"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Note</fo:block><fo:block>Invoking the above command in <fo:inline font-style="italic">boost_root</fo:inline> will build all of 
	the Boost distribution, including <fo:inline font-weight="bold">Boost.Threads</fo:inline>.</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	The Jamfile supplied with <fo:inline font-weight="bold">Boost.Threads</fo:inline> produces a dynamic link library named
	<fo:inline font-style="italic">boost_thread{build-specific-tags}.{extension}</fo:inline>, where the build-specific
	tags indicate the toolset used to build the library, whether it's a debug or release
	build, what version of Boost was used, etc.; and the extension is the appropriate extension
	for a dynamic link library for the platform for which <fo:inline font-weight="bold">Boost.Threads</fo:inline> is being built.
	For instance, a debug library built for Win32 with VC++ 7.1 using Boost 1.31 would
	be named <fo:inline font-style="italic">boost_thread-vc71-mt-gd-1_31.dll</fo:inline>.
		</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	The source files that are used to create the <fo:inline font-weight="bold">Boost.Threads</fo:inline> library
	are all of the *.cpp files found in <fo:inline font-style="italic">boost_root</fo:inline>/libs/thread/src.
	These need to be built with the compiler's and linker's multi-threading support enabled.
	If you want to create your own build solution you'll have to follow these same
	guidelines. One of the most frequently reported problems when trying to do this
	occurs from not enabling the compiler's and linker's support for multi-threading.
		</fo:block></fo:block><fo:block id="thread.build.testing"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Testing the <fo:inline font-weight="bold">Boost.Threads</fo:inline> Libraries</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
	To test the <fo:inline font-weight="bold">Boost.Threads</fo:inline> libraries using <fo:inline font-weight="bold">Boost.Build</fo:inline>, simply change to the
	directory <fo:inline font-style="italic">boost_root</fo:inline>/libs/thread/test and execute the command:
			<fo:block id="id611052" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">bjam -sTOOLS=<fo:inline font-style="italic">toolset</fo:inline> test</fo:block></fo:block></fo:block></fo:block><fo:block id="threads.implementation_notes"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Implementation Notes</fo:marker><fo:block font-size="17.28pt">Implementation Notes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.implementation_notes.win32"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Win32</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
			In the current Win32 implementation, creating a boost::thread object
			during dll initialization will result in deadlock because the thread 
			class constructor causes the current thread to wait on the thread that 
			is being created until it signals that it has finished its initialization, 
			and, as stated in the
			<fo:basic-link external-destination="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/dllmain.asp">MSDN Library, "DllMain" article, "Remarks" section</fo:basic-link>,
			"Because DLL notifications are serialized, entry-point functions should not
			attempt to communicate with other threads or processes. Deadlocks may occur as a result."
			(Also see <fo:basic-link external-destination="http://www.microsoft.com/msj/archive/S220.aspx">"Under the Hood", January 1996</fo:basic-link> 
			for a more detailed discussion of this issue).
		</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
			The following non-exhaustive list details some of the situations that
			should be avoided until this issue can be addressed:
			<fo:list-block id="id611119" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id611120" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Creating a boost::thread object in DllMain() or in any function called by it.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id611124" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Creating a boost::thread object in the constructor of a global static object or in any function called by one.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id611129" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Creating a boost::thread object in MFC's CWinApp::InitInstance() function or in any function called by it.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id611133" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Creating a boost::thread object in the function pointed to by MFC's _pRawDllMain function pointer or in any function called by it.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block id="threads.release_notes"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Release Notes</fo:marker><fo:block font-size="17.28pt">Release Notes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.release_notes.boost_1_32_0"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Boost 1.32.0</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.release_notes.boost_1_32_0.change_log.documentation"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Documentation converted to BoostBook</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The documentation was converted to BoostBook format,
			and a number of errors and inconsistencies were
			fixed in the process.
			Since this was a fairly large task, there are likely to be 
			more errors and inconsistencies remaining. If you find any,
			please report them!</fo:block></fo:block><fo:block id="threads.release_notes.boost_1_32_0.change_log.static_link"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Statically-link build option added</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The option to link <fo:inline font-weight="bold">Boost.Threads</fo:inline> as a static
			library has been added (with some limitations on Win32 platforms).
			This feature was originally removed from an earlier version
			of Boost because <fo:basic-link internal-destination="thread_specific_ptr">boost::thread_specific_ptr</fo:basic-link>
			required that <fo:inline font-weight="bold">Boost.Threads</fo:inline> be dynamically linked in order
			for its cleanup functionality to work on Win32 platforms.
			Because this limitation never applied to non-Win32 platforms,
			because significant progress has been made in removing
			the limitation on Win32 platforms (many thanks to
			Aaron LaFramboise and Roland Scwarz!), and because the lack
			of static linking is one of the most common complaints of
			<fo:inline font-weight="bold">Boost.Threads</fo:inline> users, this decision was reversed.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">On non-Win32 platforms: 
			To choose the dynamically linked version of <fo:inline font-weight="bold">Boost.Threads</fo:inline> 
			using Boost's auto-linking feature, #define BOOST_THREAD_USE_DLL;
			to choose the statically linked version, 
			#define BOOST_THREAD_USE_LIB. 
			If neither symbols is #defined, the default will be chosen.
			Currently the default is the statically linked version.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">On Win32 platforms using VC++: 
			Use the same #defines as for non-Win32 platforms 
			(BOOST_THREAD_USE_DLL and BOOST_THREAD_USE_LIB).
			If neither is #defined, the default will be chosen. 
			Currently the default is the statically linked version
			if the VC++ run-time library is set to
			"Multi-threaded" or "Multi-threaded Debug", and
			the dynamically linked version
			if the VC++ run-time library is set to 
			"Multi-threaded DLL" or "Multi-threaded Debug DLL".</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">On Win32 platforms using compilers other than VC++:
			Use the same #defines as for non-Win32 platforms 
			(BOOST_THREAD_USE_DLL and BOOST_THREAD_USE_LIB).
			If neither is #defined, the default will be chosen. 
			Currently the default is the dynamically linked version
			because it has not yet been possible to implement automatic
			tss cleanup in the statically linked version for compilers
			other than VC++, although it is hoped that this will be
			possible in a future version of <fo:inline font-weight="bold">Boost.Threads</fo:inline>.
			
			Note for advanced users: <fo:inline font-weight="bold">Boost.Threads</fo:inline> provides several "hook"
			functions to allow users to experiment with the statically
			linked version on Win32 with compilers other than VC++.
			These functions are on_process_enter(), on_process_exit(),
			on_thread_enter(), and on_thread_exit(), and are defined
			in tls_hooks.cpp. See the comments in that file for more
			information.</fo:block></fo:block><fo:block id="threads.release_notes.boost_1_32_0.change_log.barrier"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Barrier functionality added</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A new class, <fo:basic-link internal-destination="barrier">boost::barrier</fo:basic-link>, was added.</fo:block></fo:block><fo:block id="threads.release_notes.boost_1_32_0.change_log.read_write_mutex"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Read/write mutex functionality added</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">New classes, 
			<fo:basic-link internal-destination="read_write_mutex">boost::read_write_mutex</fo:basic-link>,
			<fo:basic-link internal-destination="try_read_write_mutex">boost::try_read_write_mutex</fo:basic-link>, and
			<fo:basic-link internal-destination="timed_read_write_mutex">boost::timed_read_write_mutex</fo:basic-link>
			were added.
			
			<fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id611350"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Note</fo:block><fo:block>Since the read/write mutex and related classes are new,
			both interface and implementation are liable to change
			in future releases of <fo:inline font-weight="bold">Boost.Threads</fo:inline>.
			The lock concepts and lock promotion in particular are
			still under discussion and very likely to change.</fo:block></fo:block></fo:block></fo:block><fo:block id="threads.release_notes.boost_1_32_0.change_log.thread_specific_ptr"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Thread-specific pointer functionality changed</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="thread_specific_ptr">boost::thread_specific_ptr</fo:basic-link> 
			constructor now takes an optional pointer to a cleanup function that
			is called to release the thread-specific data that is being pointed
			to by <fo:basic-link internal-destination="thread_specific_ptr">boost::thread_specific_ptr</fo:basic-link> objects.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Fixed: the number of available thread-specific storage "slots"
			is too small on some platforms.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Fixed: thread_specific_ptr::reset()
			doesn't check error returned by tss::set()
			(the tss::set() function now throws
			if it fails instead of returning an error code).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Fixed: calling 
			boost::thread_specific_ptr::reset() or 
			boost::thread_specific_ptr::release()
			causes double-delete: once when 
			boost::thread_specific_ptr::reset() or
			boost::thread_specific_ptr::release() 
			is called and once when 
			boost::thread_specific_ptr::~thread_specific_ptr()
			is called.</fo:block></fo:block><fo:block id="threads.release_notes.boost_1_32_0.change_log.mutex"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Mutex implementation changed for Win32</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">On Win32, <fo:basic-link internal-destination="mutex">boost::mutex</fo:basic-link>, 
			<fo:basic-link internal-destination="try_mutex">boost::try_mutex</fo:basic-link>, <fo:basic-link internal-destination="recursive_mutex">boost::recursive_mutex</fo:basic-link>,
			and <fo:basic-link internal-destination="recursive_try_mutex">boost::recursive_try_mutex</fo:basic-link> now use a Win32 critical section 
			whenever possible; otherwise they use a Win32 mutex. As before, 
			<fo:basic-link internal-destination="timed_mutex">boost::timed_mutex</fo:basic-link> and 
			<fo:basic-link internal-destination="recursive_timed_mutex">boost::recursive_timed_mutex</fo:basic-link> use a Win32 mutex.</fo:block></fo:block><fo:block id="threads.release_notes.boost_1_32_0.change_log.wince"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Windows CE support improved</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Minor changes were made to make Boost.Threads work on Windows CE.</fo:block></fo:block></fo:block></fo:block><fo:block id="threads.glossary"><fo:block><fo:block><fo:block margin-left="-4pc" font-size="24.8832pt" font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Glossary</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Definitions are given in terms of the C++ Standard
  [<fo:basic-link internal-destination="threads.bib.ISO98">ISO98</fo:basic-link>]. References to the standard are in the form [1.2.3/4], which
  represents the section number, with the paragraph number following the
  "/".</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Because the definitions are written in something akin to "standardese",
  they can be difficult to understand. The intent isn't to confuse, but rather
  to clarify the additional requirements <fo:inline font-weight="bold">Boost.Threads</fo:inline> places on a C++
  implementation as defined by the C++ Standard.</fo:block><fo:block id="id612059"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Acknowledgements</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This document was originally written by Beman Dawes, and then much
	improved by the incorporation of comments from William Kempf, who now
	maintains the contents.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The visibility rules are based on [<fo:basic-link internal-destination="threads.bib.Butenhof97">Butenhof97</fo:basic-link>].</fo:block></fo:block><fo:list-block provisional-distance-between-starts="2in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="threads.glossary.thread"><fo:list-item-label end-indent="label-end()"><fo:block>Thread</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Thread is short for "thread of execution". A thread of execution is
	  an execution environment [1.9/7] within the execution environment of a C++
	  program [1.9]. The main() function [3.6.1] of the program is the initial
	  function of the initial thread. A program in a multithreading environment
	  always has an initial thread even if the program explicitly creates no
	  additional threads.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Unless otherwise specified, each thread shares all aspects of its
	  execution environment with other threads in the program. Shared aspects of
	  the execution environment include, but are not limited to, the
	  following:</fo:block><fo:list-block id="id611570" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id611571" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Static storage duration (static, extern) objects
		[3.7.1].</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id611576" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Dynamic storage duration (heap) objects [3.7.3]. Thus
		each memory allocation will return a unique addresses, regardless of the
		thread making the allocation request.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id611583" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Automatic storage duration (stack) objects [3.7.2]
		accessed via pointer or reference from another thread.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id611588" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Resources provided by the operating system. For example,
		files.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id611593" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The program itself. In other words, each thread is
		executing some function of the same program, not a totally different
		program.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each thread has its own:</fo:block><fo:list-block id="id611602" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id611603" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Registers and current execution sequence (program
		counter) [1.9/5].</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id611608" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Automatic storage duration (stack) objects
		[3.7.2].</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="threads.glossary.thread-safe"><fo:list-item-label end-indent="label-end()"><fo:block>Thread-safe</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A program is thread-safe if it has no <fo:basic-link internal-destination="threads.glossary.race-condition">race conditions</fo:basic-link>, does
	  not <fo:basic-link internal-destination="threads.glossary.deadlock">deadlock</fo:basic-link>, and has
	  no <fo:basic-link internal-destination="threads.glossary.priority-failure">priority
	  failures</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note that thread-safety does not necessarily imply efficiency, and
	  than while some thread-safety violations can be determined statically at
	  compile time, many thread-safety errors can only only be detected at
	  runtime.</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="threads.glossary.thread-state"><fo:list-item-label end-indent="label-end()"><fo:block>Thread State</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">During the lifetime of a thread, it shall be in one of the following
	  states:</fo:block><fo:block span="none"><fo:block id="id611673" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;26.&#xA0;Thread States</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">State</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Ready</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Ready to run, but waiting for a processor.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Running</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Currently executing on a processor. Zero or more threads
					may be running at any time, with a maximum equal to the number of
					processors.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Blocked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Waiting for some resource other than a processor which is
					not currently available, or for the completion of calls to library
					functions [1.9/6]. The term "waiting" is synonymous with
					"blocked"</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Terminated</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block>Finished execution but not yet detached or joined.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Thread state transitions shall occur only as specified:</fo:block><fo:block span="none"><fo:block id="id611729" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;27.&#xA0;Thread States Transitions</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">From</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">To</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">Cause</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>[none]</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Ready</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Thread is created by a call to a library function. 
					In the case of the initial thread, creation is implicit and 
					occurs during the startup of the main() function [3.6.1].</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Ready</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Running</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Processor becomes available.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Running</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Ready</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Thread preempted.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Running</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Blocked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Thread calls a library function which waits for a resource or
					for the completion of I/O.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Running</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Terminated</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>Thread returns from its initial function, calls a thread
					termination library function, or is canceled by some other thread
					calling a thread termination library function.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Blocked</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Ready</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block>The resource being waited for becomes available, or the
					blocking library function completes.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>Terminated</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block>[none]</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block>Thread is detached or joined by some other thread calling the
					appropriate library function, or by program termination
					[3.6.3].</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">[Note: if a suspend() function is added to the threading library,
	  additional transitions to the blocked state will have to be added to the
	  above table.]</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="threads.glossary.race-condition"><fo:list-item-label end-indent="label-end()"><fo:block>Race Condition</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A race condition is what occurs when multiple threads read from and write
	  to the same memory without proper synchronization, resulting in an incorrect
	  value being read or written. The result of a race condition may be a bit
	  pattern which isn't even a valid value for the data type. A race condition
	  results in undefined behavior [1.3.12].</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Race conditions can be prevented by serializing memory access using
	  the tools provided by <fo:inline font-weight="bold">Boost.Threads</fo:inline>.</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="threads.glossary.deadlock"><fo:list-item-label end-indent="label-end()"><fo:block>Deadlock</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Deadlock is an execution state where for some set of threads, each
	  thread in the set is blocked waiting for some action by one of the other
	  threads in the set. Since each is waiting on the others, none will ever
	  become ready again.</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="threads.glossary.starvation"><fo:list-item-label end-indent="label-end()"><fo:block>Starvation</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The condition in which a thread is not making sufficient progress in
	  its work during a given time interval.</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="threads.glossary.priority-failure"><fo:list-item-label end-indent="label-end()"><fo:block>Priority Failure</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A priority failure (such as priority inversion or infinite overtaking)
	  occurs when threads are executed in such a sequence that required work is not
	  performed in time to be useful.</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="threads.glossary.undefined-behavior"><fo:list-item-label end-indent="label-end()"><fo:block>Undefined Behavior</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The result of certain operations in <fo:inline font-weight="bold">Boost.Threads</fo:inline> is undefined;
	  this means that those operations can invoke almost any behavior when
	  they are executed.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An operation whose behavior is undefined can work "correctly"
	  in some implementations (i.e., do what the programmer thought it
	  would do), while in other implementations it may exhibit almost
	  any "incorrect" behavior--such as returning an invalid value,
	  throwing an exception, generating an access violation, or terminating 
	  the process.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Executing a statement whose behavior is undefined is a
	  programming error.</fo:block></fo:list-item-body></fo:list-item><fo:list-item space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="threads.glossary.memory-visibility"><fo:list-item-label end-indent="label-end()"><fo:block>Memory Visibility</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An address [1.7] shall always point to the same memory byte,
	  regardless of the thread or processor dereferencing the address.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An object [1.8, 1.9] is accessible from multiple threads if it is of
	  static storage duration (static, extern) [3.7.1], or if a pointer or
	  reference to it is explicitly or implicitly dereferenced in multiple
	  threads.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For an object accessible from multiple threads, the value of the
	  object accessed from one thread may be indeterminate or different from the
	  value accessed from another thread, except under the conditions specified in
	  the following table. For the same row of the table, the value of an object
	  accessible at the indicated sequence point in thread A will be determinate
	  and the same if accessed at or after the indicated sequence point in thread
	  B, provided the object is not otherwise modified. In the table, the
	  "sequence point at a call" is the sequence point after the evaluation of all
	  function arguments [1.9/17], while the "sequence point after a call" is the
	  sequence point after the copying of the returned value... [1.9/17].</fo:block><fo:block span="none"><fo:block id="id611984" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;28.&#xA0;Memory Visibility</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Thread A</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Thread B</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>The sequence point at a call to a library thread-creation
					function.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The first sequence point of the initial function in the new
					thread created by the Thread A call.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>The sequence point at a call to a library function which
					locks a mutex, directly or by waiting for a condition
					variable.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The sequence point after a call to a library function which
					unlocks the same mutex.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>The last sequence point before thread termination.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The sequence point after a call to a library function which
					joins the terminated thread.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>The sequence point at a call to a library function which
					signals or broadcasts a condition variable.</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>The sequence point after the call to the library function
					which was waiting on that same condition variable or signal.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The architecture of the execution environment and the observable
	  behavior of the abstract machine [1.9] shall be the same on all
	  processors.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The latitude granted by the C++ standard for an implementation to
	  alter the definition of observable behavior of the abstract machine to
	  include additional library I/O functions [1.9/6] is extended to include
	  threading library functions.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When an exception is thrown and there is no matching exception handler
	  in the same thread, behavior is undefined. The preferred behavior is the
	  same as when there is no matching exception handler in a program
	  [15.3/9]. That is, terminate() is called, and it is implementation-defined
	  whether or not the stack is unwound.</fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block id="thread.acknowledgements"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Acknowledgements</fo:marker><fo:block font-size="17.28pt">Acknowledgements</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">William E. Kempf was the architect, designer, and implementor of 
  <fo:inline font-weight="bold">Boost.Threads</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Mac OS Carbon implementation written by Mac Murrett.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Dave Moore provided initial submissions and further comments on the 
  <fo:inline font-family="monospace">barrier</fo:inline>
  , 
  <fo:inline font-family="monospace">thread_pool</fo:inline>
  , 
  <fo:inline font-family="monospace">read_write_mutex</fo:inline>
  , 
  <fo:inline font-family="monospace">read_write_try_mutex</fo:inline>
  and 
  <fo:inline font-family="monospace">read_write_timed_mutex</fo:inline>
  classes.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Important contributions were also made by Jeremy Siek (lots of input
  on the design and on the implementation), Alexander Terekhov (lots of input
  on the Win32 implementation, especially in regards to boost::condition, as
  well as a lot of explanation of POSIX behavior), Greg Colvin (lots of input
  on the design), Paul Mclachlan, Thomas Matelich and Iain Hanson (for help
  in trying to get the build to work on other platforms), and Kevin S. Van
  Horn (for several updates/corrections to the documentation).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Mike Glassford finished changes to <fo:inline font-weight="bold">Boost.Threads</fo:inline> that were begun
  by William Kempf and moved them into the main CVS branch.
  He also addressed a number of issues that were brought up on the Boost
  developer's mailing list and provided some additions and changes to the 
  read_write_mutex and related classes.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The documentation was written by William E. Kempf. Beman Dawes
  provided additional documentation material and editing.
  Mike Glassford finished William Kempf's conversion of the documentation to 
  BoostBook format and added a number of new sections.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Discussions on the boost.org mailing list were essential in the
  development of <fo:inline font-weight="bold">Boost.Threads</fo:inline>
  . As of August 1, 2001, participants included Alan Griffiths, Albrecht
  Fritzsche, Aleksey Gurtovoy, Alexander Terekhov, Andrew Green, Andy Sawyer,
  Asger Alstrup Nielsen, Beman Dawes, Bill Klein, Bill Rutiser, Bill Wade,
  Branko &#xE8;ibej, Brent Verner, Craig Henderson, Csaba Szepesvari,
  Dale Peakall, Damian Dixon, Dan Nuffer, Darryl Green, Daryle Walker, David
  Abrahams, David Allan Finch, Dejan Jelovic, Dietmar Kuehl, Douglas Gregor,
  Duncan Harris, Ed Brey, Eric Swanson, Eugene Karpachov, Fabrice Truillot,
  Frank Gerlach, Gary Powell, Gernot Neppert, Geurt Vos, Ghazi Ramadan, Greg
  Colvin, Gregory Seidman, HYS, Iain Hanson, Ian Bruntlett, J Panzer, Jeff
  Garland, Jeff Paquette, Jens Maurer, Jeremy Siek, Jesse Jones, Joe Gottman,
  John (EBo) David, John Bandela, John Maddock, John Max Skaller, John
  Panzer, Jon Jagger , Karl Nelson, Kevlin Henney, KG Chandrasekhar, Levente
  Farkas, Lie-Quan Lee, Lois Goldthwaite, Luis Pedro Coelho, Marc Girod, Mark
  A. Borgerding, Mark Rodgers, Marshall Clow, Matthew Austern, Matthew Hurd,
  Michael D. Crawford, Michael H. Cox , Mike Haller, Miki Jovanovic, Nathan
  Myers, Paul Moore, Pavel Cisler, Peter Dimov, Petr Kocmid, Philip Nash,
  Rainer Deyke, Reid Sweatman, Ross Smith, Scott McCaskill, Shalom Reich,
  Steve Cleary, Steven Kirk, Thomas Holenstein, Thomas Matelich, Trevor
  Perrin, Valentin Bonnard, Vesa Karvonen, Wayne Miller, and William
  Kempf.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Apologies for anyone inadvertently missed.</fo:block></fo:block><fo:block id="threads.bibliography" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em"><fo:block><fo:block><fo:block margin-left="-4pc" font-size="24.8832pt" font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Bibliography</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="threads.bib.AndrewsSchneider83" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[AndrewsSchnieder83] <fo:inline><fo:inline font-style="italic">ACM Computing Surveys</fo:inline>. <fo:inline>Vol. 15. </fo:inline><fo:inline>No. 1. </fo:inline><fo:inline>March, 1983. </fo:inline></fo:inline><fo:inline><fo:inline>Gregory R. Andrews and Fred B. Schneider. </fo:inline>&#x201C;<fo:basic-link external-destination="http://www.acm.org/pubs/citations/journals/surveys/1983-15-1/p3-andrews/">Concepts and Notations for Concurrent Programming</fo:basic-link>&#x201D;. </fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Good general background reading. Includes descriptions of Path
    Expressions, Message Passing, and Remote Procedure Call in addition to the
    basics</fo:block></fo:block><fo:block id="threads.bib.Boost" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[Boost] <fo:inline>The <fo:inline font-style="italic">Boost</fo:inline> world wide web site.
	<fo:basic-link external-destination="http:/www.boost.org">http://www.boost.org</fo:basic-link>. </fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Boost.Threads</fo:inline> is one of many Boost libraries. The Boost web
    site includes a great deal of documentation and general information which
    applies to all Boost libraries. Current copies of the libraries including
    documentation and test programs may be downloaded from the web
    site.</fo:block></fo:block><fo:block id="threads.bib.Hansen73" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[Hansen73] <fo:inline><fo:inline font-style="italic">ACM Computing Surveys</fo:inline>. <fo:inline>Vol. 5. </fo:inline><fo:inline>No. 4. </fo:inline><fo:inline>December, 1983. </fo:inline></fo:inline><fo:inline><fo:inline>Per Brinch. </fo:inline>&#x201C;<fo:basic-link external-destination="http://www.acm.org/pubs/articles/journals/surveys/1973-5-4/p223-hansen/">Concurrent Programming Concepts</fo:basic-link>&#x201D;. </fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">"This paper describes the evolution of language features for
    multiprogramming from event queues and semaphores to critical regions and
    monitors." Includes analysis of why events are considered error-prone. Also
    noteworthy because of an introductory quotation from Christopher Alexander;
    Brinch Hansen was years ahead of others in recognizing pattern concepts
    applied to software, too.</fo:block></fo:block><fo:block id="threads.bib.Butenhof97" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[Butenhof97] <fo:inline><fo:inline font-style="italic"><fo:basic-link external-destination="http://cseng.aw.com/book/0,3828,0201633922,00.html">Programming with POSIX Threads </fo:basic-link></fo:inline>. </fo:inline><fo:inline>David R. Butenhof. </fo:inline><fo:inline>Addison-Wesley</fo:inline><fo:inline>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 1997. </fo:inline><fo:inline>ISNB: 0-201-63392-2. </fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a very readable explanation of threads and how to use
	them. Many of the insights given apply to all multithreaded programming, not
	just POSIX Threads</fo:block></fo:block><fo:block id="threads.bib.Hoare74" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[Hoare74] <fo:inline><fo:inline font-style="italic">Communications of the ACM</fo:inline>. <fo:inline>Vol. 17. </fo:inline><fo:inline>No. 10. </fo:inline><fo:inline>October, 1974. </fo:inline></fo:inline><fo:inline>&#x201C;<fo:basic-link external-destination=" http://www.acm.org/classics/feb96/">Monitors: An Operating System Structuring Concept</fo:basic-link>&#x201D;. <fo:inline>C.A.R. Hoare. </fo:inline><fo:inline>549-557. </fo:inline></fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Hoare and Brinch Hansen's work on Monitors is the basis for reliable
	multithreading patterns. This is one of the most often referenced papers in
	all of computer science, and with good reason.</fo:block></fo:block><fo:block id="threads.bib.ISO98" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[ISO98] <fo:inline><fo:inline font-style="italic"><fo:basic-link external-destination="http://www.ansi.org">Programming Language C++</fo:basic-link></fo:inline>. </fo:inline><fo:inline>ISO/IEC. </fo:inline><fo:inline>14882:1998(E). </fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the official C++ Standards document. Available from the ANSI
	(American National Standards Institute) Electronic Standards Store.</fo:block></fo:block><fo:block id="threads.bib.McDowellHelmbold89" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[McDowellHelmbold89] <fo:inline><fo:inline font-style="italic">Communications of the ACM</fo:inline>. <fo:inline>Vol. 21. </fo:inline><fo:inline>No. 2. </fo:inline><fo:inline>December, 1989. </fo:inline></fo:inline><fo:inline><fo:inline>Charles E. McDowell. </fo:inline><fo:inline>David P. Helmbold. </fo:inline><fo:inline font-style="italic"><fo:basic-link external-destination="http://www.acm.org/pubs/citations/journals/surveys/1989-21-4/p593-mcdowell/">Debugging Concurrent Programs</fo:basic-link></fo:inline>. </fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Identifies many of the unique failure modes and debugging difficulties
	associated with concurrent programs.</fo:block></fo:block><fo:block id="threads.bib.SchmidtPyarali" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[SchmidtPyarali] <fo:inline><fo:inline font-style="italic"><fo:basic-link external-destination="http://www.cs.wustl.edu/~schmidt/win32-cv-1.html8">Strategies for Implementing POSIX Condition Variables on Win32</fo:basic-link></fo:inline>. </fo:inline><fo:inline>Douglas C. Schmidt and Irfan Pyarali. </fo:inline><fo:inline>Department of Computer Science, Washington University, St. Louis,
	Missouri. </fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Rationale for understanding <fo:inline font-weight="bold">Boost.Threads</fo:inline> condition
	variables. Note that Alexander Terekhov found some bugs in the
	implementation given in this article, so pthreads-win32 and <fo:inline font-weight="bold">Boost.Threads</fo:inline>
	are even more complicated yet.</fo:block></fo:block><fo:block id="threads.bib.SchmidtStalRohnertBuschmann" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[SchmidtStalRohnertBuschmann] <fo:inline><fo:inline font-style="italic"><fo:basic-link external-destination="http://www.wiley.com/Corporate/Website/Objects/Products/0,9049,104671,00.html">Pattern-Oriented Architecture Volume 2</fo:basic-link></fo:inline>. </fo:inline><fo:inline>Patterns for Concurrent and Networked Objects. </fo:inline><fo:inline>POSA2. </fo:inline><fo:inline>Douglas C. Schmidt, Michael, Hans Rohnert, and Frank Buschmann. </fo:inline><fo:inline>Wiley</fo:inline><fo:inline>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2000. </fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a very good explanation of how to apply several patterns
	useful for concurrent programming. Among the patterns documented is the
	Monitor Pattern mentioned frequently in the <fo:inline font-weight="bold">Boost.Threads</fo:inline>
	documentation.</fo:block></fo:block><fo:block id="threads.bib.Stroustrup" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" start-indent="0.5in" text-indent="-0.5in">[Stroustrup] <fo:inline><fo:inline font-style="italic"><fo:basic-link external-destination="http://cseng.aw.com/book/0,3828,0201700735,00.html">The C++ Programming Language</fo:basic-link></fo:inline>. </fo:inline><fo:inline>Special Edition. </fo:inline><fo:inline>Addison-Wesley</fo:inline><fo:inline>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2000. </fo:inline><fo:inline>ISBN: 0-201-70073-5. </fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The first book a C++ programmer should own. Note that the 3rd edition
	(and subsequent editions like the Special Edition) has been rewritten to
	cover the ISO standard language and library.</fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Tribool</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Tribool</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="tribool"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Boost.Tribool</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Douglas Gregor <fo:inline font-family="monospace"><fo:inline keep-together.within-line="always" hyphenate="false">&lt;dgregor -at- cs.indiana.edu&gt;</fo:inline></fo:inline></fo:block></fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2002-2004 Douglas Gregor</fo:block><fo:block><fo:block id="id612838"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use, modification and distribution is subject to the Boost
    Software License, Version 1.0. (See accompanying file
    <fo:inline font-family="monospace">LICENSE_1_0.txt</fo:inline> or copy at <fo:basic-link external-destination="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</fo:basic-link>)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="tribool.introduction"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="17.28pt">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The 3-state boolean library contains a single class,
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">boost::logic::tribool</fo:basic-link></fo:inline>, along with
    support functions and operator overloads that implement 3-state
    boolean logic. </fo:block></fo:block><fo:block id="tribool.tutorial"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Tutorial</fo:marker><fo:block font-size="17.28pt">Tutorial</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id612895"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Basic usage</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link></fo:inline> class acts
    like the built-in <fo:inline font-family="monospace">bool</fo:inline> type, but for 3-state boolean
    logic. The three states are <fo:inline font-family="monospace">true</fo:inline>, <fo:inline font-family="monospace">false</fo:inline>,
    and <fo:inline font-family="monospace"><fo:basic-link internal-destination="indeterminate">indeterminate</fo:basic-link></fo:inline>, where
    the first two states are equivalent to those of the C++
    <fo:inline font-family="monospace">bool</fo:inline> type and the last state represents an unknown
    boolean value (that may be <fo:inline font-family="monospace">true</fo:inline> or
    <fo:inline font-family="monospace">false</fo:inline>, we don't know).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link></fo:inline> class
    supports conversion from <fo:inline font-family="monospace">bool</fo:inline> values and literals
    along with its own
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="indeterminate">indeterminate</fo:basic-link></fo:inline>
    keyword:</fo:block><fo:block id="id613004" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> b(true);
b = false;
b = <fo:basic-link internal-destination="indeterminate">indeterminate</fo:basic-link>;
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> b2(b);</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link></fo:inline> supports
    conversions to <fo:inline font-family="monospace">bool</fo:inline> for use in conditional
    statements. The conversion to <fo:inline font-family="monospace">bool</fo:inline> will be
    <fo:inline font-family="monospace">true</fo:inline> when the value of the
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link></fo:inline> is always true, and
    <fo:inline font-family="monospace">false</fo:inline> otherwise. Consequently, the following idiom
    may be used to determine which of the three states a
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link></fo:inline> currently
    holds:</fo:block><fo:block id="id613100" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> b = some_operation();
if (b) {
  // b is true
}
else if (!b) {
  // b is false
}
else {
  // b is indeterminate
}</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link></fo:inline> supports the
  3-state logic operators <fo:inline font-family="monospace">!</fo:inline> (negation),
  <fo:inline font-family="monospace">&amp;&amp;</fo:inline> (AND), and <fo:inline font-family="monospace">||</fo:inline> (OR), with
  <fo:inline font-family="monospace">bool</fo:inline> and <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link></fo:inline>
  values. For instance:</fo:block><fo:block id="id613166" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x = some_op();
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> y = some_other_op();
if (x &amp;&amp; y) {
  // both x and y are true
}
else if (!(x &amp;&amp; y)) {
  // either x or y is false
}
else {
  // neither x nor y is false, but we don't know that both are true

  if (x || y) {
    // either x or y is true
  }
}</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Similarly, <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link></fo:inline>
  supports 3-state equality comparisons via the operators
  <fo:inline font-family="monospace">==</fo:inline> and <fo:inline font-family="monospace">!=</fo:inline>. These operators differ from
  "normal" equality operators in C++ because they return a
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link></fo:inline>, because potentially we
  might not know the result of a comparison (try to compare
  <fo:inline font-family="monospace">true</fo:inline> and
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="indeterminate">indeterminate</fo:basic-link></fo:inline>). For
  instance:</fo:block><fo:block id="id613260" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x(true);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> y(<fo:basic-link internal-destination="indeterminate">indeterminate</fo:basic-link>);

assert(x == x); // okay, x == x returns true
assert(x == true); // okay, can compare <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>s and bools</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> The <fo:inline font-family="monospace"><fo:basic-link internal-destination="indeterminate">indeterminate</fo:basic-link></fo:inline> keyword (representing the
  <fo:basic-link internal-destination="indeterminate">indeterminate</fo:basic-link>&#xA0;<fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link></fo:inline> value)
  doubles as a function to check if the value of a
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link></fo:inline> is indeterminate,
  e.g.,</fo:block><fo:block id="id613347" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x = try_to_do_something_tricky();
if (<fo:basic-link internal-destination="indeterminate">indeterminate</fo:basic-link>(x)) {
  // value of x is indeterminate
}
else {
  // report success or failure of x
}</fo:block></fo:block><fo:block id="id613368"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Renaming the indeterminate state</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Users may introduce additional keywords for the indeterminate
  value in addition to the implementation-supplied
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="indeterminate">indeterminate</fo:basic-link></fo:inline> using the
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="BOOST_TRIBOOL_THIRD_STATE">BOOST_TRIBOOL_THIRD_STATE</fo:basic-link></fo:inline>
  macro. For instance, the following macro instantiation (at the
  global scope) will introduce the keyword <fo:inline font-family="monospace">maybe</fo:inline> as a
  synonym for <fo:inline font-family="monospace"><fo:basic-link internal-destination="indeterminate">indeterminate</fo:basic-link></fo:inline>
  (also residing in the <fo:inline font-family="monospace">boost</fo:inline> namespace):</fo:block><fo:block id="id613431" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="BOOST_TRIBOOL_THIRD_STATE">BOOST_TRIBOOL_THIRD_STATE</fo:basic-link>(maybe)
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x = maybe;
if (maybe(x)) { /* ... */ }</fo:block></fo:block><fo:block id="id613453"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt"><fo:inline font-family="monospace">tribool</fo:inline> input/output</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link></fo:inline> objects may be
  read from and written to streams by including the
  <fo:basic-link internal-destination="id267011">boost/logic/tribool_io.hpp</fo:basic-link> header in a
  manner very similar to <fo:inline font-family="monospace">bool</fo:inline> values. When the
  <fo:inline font-family="monospace">boolalpha</fo:inline> flag is not set on the input/output stream,
  the integral values 0, 1, and 2 correspond to <fo:inline font-family="monospace">tribool</fo:inline>
  values <fo:inline font-family="monospace">false</fo:inline>, <fo:inline font-family="monospace">true</fo:inline>, and
  <fo:inline font-family="monospace">indeterminate</fo:inline>, respectively. When
  <fo:inline font-family="monospace">boolalpha</fo:inline> is set on the stream, arbitrary strings can
  be used to represent the three values, the default being "false",
  "true", and "indeterminate". For instance:</fo:block><fo:block id="id613536" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x;
cin &gt;&gt; x; // Type "0", "1", or "2" to get false, true, or indeterminate
cout &lt;&lt; boolalpha &lt;&lt; x; // Produces "false", "true", or "indeterminate"</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link></fo:inline> input and output
  is sensitive to the stream's current locale. The strings associated
  with false and true values are contained in the standard
  <fo:inline font-family="monospace">std::numpunct</fo:inline> facet, and the
  string naming the indeterminate type is contained in the
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="indeterminate_name">indeterminate_name</fo:basic-link></fo:inline> facet. To
  replace the name of the indeterminate state, you need to imbue your
  stream with a local containing a
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="indeterminate_name">indeterminate_name</fo:basic-link></fo:inline> facet, e.g.:</fo:block><fo:block id="id613602" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="BOOST_TRIBOOL_THIRD_STATE">BOOST_TRIBOOL_THIRD_STATE</fo:basic-link>(maybe)
locale global;
locale test_locale(global, new <fo:basic-link internal-destination="indeterminate_name">indeterminate_name</fo:basic-link>&lt;char&gt;("maybe"));
cout.imbue(test_locale);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x(maybe);
cout &lt;&lt; boolalpha &lt;&lt; x &lt;&lt; endl; // Prints "maybe"</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you C++ standard library implementation does not support
  locales, <fo:inline font-family="monospace">tribool</fo:inline> input/output will still work, but you
  will be unable to customize the strings printed/parsed when
  <fo:inline font-family="monospace">boolalpha</fo:inline> is set.</fo:block></fo:block></fo:block><fo:block id="tribool.reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Reference</fo:marker><fo:block font-size="17.28pt">Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id442636"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/logic/tribool.hpp">boost/logic/tribool.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id613679" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">

<fo:basic-link internal-destination="BOOST_TRIBOOL_THIRD_STATE">BOOST_TRIBOOL_THIRD_STATE</fo:basic-link>(Name)</fo:block><fo:block id="id613692" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> logic {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="indeterminate">indeterminate</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>, <fo:inline font-style="italic">unspecified</fo:inline> = <fo:inline font-style="italic">unspecified</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id268158"><fo:inline font-weight="bold">operator</fo:inline>!</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id217301"><fo:inline font-weight="bold">operator</fo:inline>&amp;&amp;</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id217301"><fo:inline font-weight="bold">operator</fo:inline>&amp;&amp;</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>, <fo:inline font-weight="bold">bool</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id217301"><fo:inline font-weight="bold">operator</fo:inline>&amp;&amp;</fo:basic-link>(<fo:inline font-weight="bold">bool</fo:inline>, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id217301"><fo:inline font-weight="bold">operator</fo:inline>&amp;&amp;</fo:basic-link>(indeterminate_keyword_t, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id217301"><fo:inline font-weight="bold">operator</fo:inline>&amp;&amp;</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>, indeterminate_keyword_t);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id346259"><fo:inline font-weight="bold">operator</fo:inline>||</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id346259"><fo:inline font-weight="bold">operator</fo:inline>||</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>, <fo:inline font-weight="bold">bool</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id346259"><fo:inline font-weight="bold">operator</fo:inline>||</fo:basic-link>(<fo:inline font-weight="bold">bool</fo:inline>, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id346259"><fo:inline font-weight="bold">operator</fo:inline>||</fo:basic-link>(indeterminate_keyword_t, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id346259"><fo:inline font-weight="bold">operator</fo:inline>||</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>, indeterminate_keyword_t);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id391666"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id391666"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>, <fo:inline font-weight="bold">bool</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id391666"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">bool</fo:inline>, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id391666"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(indeterminate_keyword_t, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id391666"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>, indeterminate_keyword_t);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id380697"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id380697"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>, <fo:inline font-weight="bold">bool</fo:inline>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id380697"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:inline font-weight="bold">bool</fo:inline>, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id380697"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(indeterminate_keyword_t, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:basic-link internal-destination="id380697"><fo:inline font-weight="bold">operator</fo:inline>!=</fo:basic-link>(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>, indeterminate_keyword_t);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="boost.logic.tribool"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class tribool</fo:block></fo:block><fo:block space-after="1em">Class tribool <fo:inline font-family="serif">--</fo:inline> A 3-state boolean type. </fo:block><fo:block>boost::logic::tribool</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id614509"><fo:block/><fo:block id="id614510" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> tribool {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="boost.logic.triboolconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id503060-bb">tribool</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id445956-bb">tribool</fo:basic-link>(<fo:inline font-weight="bold">bool</fo:inline>);
&#xA0;&#xA0;<fo:basic-link internal-destination="id459033-bb">tribool</fo:basic-link>(indeterminate_keyword_t);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id468832-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id468836-bb"><fo:inline font-weight="bold">operator</fo:inline> safe_bool</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;enum boost::logic::tribool::@0 value;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id614614"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">3-state boolean values are either true, false, or indeterminate. </fo:block><fo:block id="id614621"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">tribool construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="boost.logic.triboolconstruct-copy-destruct"/><fo:inline font-family="monospace">tribool</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id614638" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id614644" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id614646" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id503060-bb"/>tribool();</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct a new 3-state boolean value with the value 'false'.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id614665" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id614668" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id614676" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id614678" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id445956-bb"/>tribool(<fo:inline font-weight="bold">bool</fo:inline> value);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct a new 3-state boolean value with the given boolean value, which may be <fo:inline font-family="monospace">true</fo:inline>  or <fo:inline font-family="monospace">false</fo:inline> .</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id614717" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id614720" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id614728" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id614730" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id459033-bb"/>tribool(indeterminate_keyword_t );</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Construct a new 3-state boolean value with an indeterminate value.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id614749" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id614753" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id614761"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">tribool public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id468832-bb"/><fo:inline font-family="monospace">tribool</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id614776" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id614781" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id614784" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id468836-bb"/><fo:inline font-weight="bold">operator</fo:inline> safe_bool() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use a 3-state boolean in a boolean context. Will evaluate true in a boolean context only when the 3-state boolean is definitely true.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id614815" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id614818" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>true if the 3-state boolean is true, false otherwise </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id614827" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="indeterminate"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function indeterminate</fo:block></fo:block><fo:block space-after="1em">Function indeterminate <fo:inline font-family="serif">--</fo:inline> Keyword and test function for the indeterminate tribool value. </fo:block><fo:block>boost::logic::indeterminate</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id614855"><fo:block/><fo:block id="id614856" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">bool</fo:inline> indeterminate(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x, <fo:inline font-style="italic">unspecified</fo:inline> dummy = <fo:inline font-style="italic">unspecified</fo:inline>);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id614886"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">indeterminate</fo:inline>  function has a dual role. It's first role is as a unary function that tells whether the tribool value is in the "indeterminate" state. It's second role is as a keyword representing the indeterminate (just like "true" and "false" represent the true and false states). If you do not like the name "indeterminate", and would prefer to use a different name, see the macro <fo:inline font-family="monospace">BOOST_TRIBOOL_THIRD_STATE</fo:inline> .</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id614913" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id614917" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">x.value == tribool::indeterminate_value</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id614929" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id268158"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function operator!</fo:block></fo:block><fo:block space-after="1em">Function operator! <fo:inline font-family="serif">--</fo:inline> Computes the logical negation of a tribool. </fo:block><fo:block>boost::logic::operator!</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id614956"><fo:block/><fo:block id="id614957" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>!(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id614986"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id614992" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id614995" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>the logical negation of the tribool, according to the table: <fo:block id="id615004" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold"><fo:inline font-family="monospace">!</fo:inline></fo:inline></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="center" padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block/></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">false</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block>true</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">true</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block>false</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">indeterminate</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id615085" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id217301"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function operator&amp;&amp;</fo:block></fo:block><fo:block space-after="1em">Function operator&amp;&amp; <fo:inline font-family="serif">--</fo:inline> Computes the logical conjuction of two tribools. </fo:block><fo:block>boost::logic::operator&amp;&amp;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id615113"><fo:block/><fo:block id="id615114" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>&amp;&amp;(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> y);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>&amp;&amp;(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x, <fo:inline font-weight="bold">bool</fo:inline> y);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>&amp;&amp;(<fo:inline font-weight="bold">bool</fo:inline> x, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> y);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>&amp;&amp;(indeterminate_keyword_t , <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>&amp;&amp;(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x, indeterminate_keyword_t );</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id615262"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id615268" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id615271" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>the result of logically ANDing the two tribool values, according to the following table: <fo:block id="id615280" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold"><fo:inline font-family="monospace">&amp;&amp;</fo:inline></fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">false</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">true</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">indeterminate</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">false</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>false</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>false</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block>false</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">true</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>false</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>true</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">indeterminate</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>false</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id615440" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id346259"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function operator||</fo:block></fo:block><fo:block space-after="1em">Function operator|| <fo:inline font-family="serif">--</fo:inline> Computes the logical disjunction of two tribools. </fo:block><fo:block>boost::logic::operator||</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id615468"><fo:block/><fo:block id="id615469" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>||(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> y);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>||(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x, <fo:inline font-weight="bold">bool</fo:inline> y);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>||(<fo:inline font-weight="bold">bool</fo:inline> x, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> y);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>||(indeterminate_keyword_t , <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>||(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x, indeterminate_keyword_t );</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id615616"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id615621" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id615624" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>the result of logically ORing the two tribool values, according to the following table: <fo:block id="id615634" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold"><fo:inline font-family="monospace">||</fo:inline></fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">false</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">true</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">indeterminate</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">false</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>false</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>true</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">true</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>true</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>true</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block>true</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">indeterminate</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>true</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id615793" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id391666"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function operator==</fo:block></fo:block><fo:block space-after="1em">Function operator== <fo:inline font-family="serif">--</fo:inline> Compare tribools for equality. </fo:block><fo:block>boost::logic::operator==</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id615820"><fo:block/><fo:block id="id615821" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>==(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> y);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>==(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x, <fo:inline font-weight="bold">bool</fo:inline> y);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">bool</fo:inline> x, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> y);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>==(indeterminate_keyword_t , <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>==(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x, indeterminate_keyword_t );</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id615968"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id615973" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id615977" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>the result of comparing two tribool values, according to the following table: <fo:block id="id615986" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold"><fo:inline font-family="monospace">==</fo:inline></fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">false</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">true</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">indeterminate</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">false</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>true</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>false</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">true</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>false</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>true</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">indeterminate</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id616146" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id380697"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function operator!=</fo:block></fo:block><fo:block space-after="1em">Function operator!= <fo:inline font-family="serif">--</fo:inline> Compare tribools for inequality. </fo:block><fo:block>boost::logic::operator!=</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id616172"><fo:block/><fo:block id="id616174" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>!=(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> y);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>!=(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x, <fo:inline font-weight="bold">bool</fo:inline> y);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>!=(<fo:inline font-weight="bold">bool</fo:inline> x, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> y);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>!=(indeterminate_keyword_t , <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x);
<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> <fo:inline font-weight="bold">operator</fo:inline>!=(<fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x, indeterminate_keyword_t );</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id616320"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id616326" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id616329" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>the result of comparing two tribool values for inequality, according to the following table: <fo:block id="id616338" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold"><fo:inline font-family="monospace">!=</fo:inline></fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">false</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">true</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">indeterminate</fo:inline></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">false</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>false</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>true</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">true</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>true</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>false</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block><fo:inline font-weight="bold">indeterminate</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" display-align="center" text-align="center"><fo:block>indeterminate</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id616498" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="BOOST_TRIBOOL_THIRD_STATE"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Macro BOOST_TRIBOOL_THIRD_STATE</fo:block></fo:block><fo:block space-after="1em">Macro BOOST_TRIBOOL_THIRD_STATE <fo:inline font-family="serif">--</fo:inline> Declare a new name for the third state of a tribool. </fo:block><fo:block>BOOST_TRIBOOL_THIRD_STATE</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id616526"><fo:block/><fo:block id="id616527" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">BOOST_TRIBOOL_THIRD_STATE(Name)</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id616532"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use this macro to declare a new name for the third state of a tribool. This state can have any number of new names (in addition to <fo:inline font-family="monospace">indeterminate</fo:inline> ), all of which will be equivalent. The new name will be placed in the namespace in which the macro is expanded.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Example: BOOST_TRIBOOL_THIRD_STATE(true_or_false)</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">tribool x(true_or_false); // potentially set x if (true_or_false(x)) { // don't know what x is } </fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id506430"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/logic/tribool_fwd.hpp">boost/logic/tribool_fwd.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id616574" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> logic {
&#xA0;&#xA0;}
}</fo:block></fo:block><fo:block id="id267011"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/logic/tribool_io.hpp">boost/logic/tribool_io.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id616607" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">namespace</fo:inline> logic {
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="indeterminate_name">indeterminate_name</fo:basic-link>;
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; T &gt; <fo:basic-link internal-destination="id224510">get_default_indeterminate_name</fo:basic-link>();

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Returns the character string "indeterminate". </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; <fo:inline font-weight="bold">char</fo:inline> &gt; <fo:wrapper id="id257124"/>get_default_indeterminate_name&lt;<fo:inline font-weight="bold">char</fo:inline> &gt;();

&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-style="italic">// Returns the wide character string L"indeterminate". </fo:inline>
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_string&lt; <fo:inline font-weight="bold">wchar_t</fo:inline> &gt; <fo:wrapper id="id474173"/>get_default_indeterminate_name&lt;<fo:inline font-weight="bold">wchar_t</fo:inline> &gt;();
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> Traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt; CharT, Traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id495324"><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;</fo:basic-link>(std::basic_ostream&lt; CharT, Traits &gt; &amp;, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link>);
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> Traits&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;std::basic_istream&lt; CharT, Traits &gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id269271"><fo:inline font-weight="bold">operator</fo:inline>&gt;&gt;</fo:basic-link>(std::basic_istream&lt; CharT, Traits &gt; &amp;, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> &amp;);
&#xA0;&#xA0;}
}</fo:block><fo:block break-before="page"><fo:block id="indeterminate_name"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template indeterminate_name</fo:block></fo:block><fo:block space-after="1em">Class template indeterminate_name <fo:inline font-family="serif">--</fo:inline> A locale facet specifying the name of the indeterminate value of a tribool. </fo:block><fo:block>boost::logic::indeterminate_name</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id616877"><fo:block/><fo:block id="id616878" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT&gt; 
<fo:inline font-weight="bold">class</fo:inline> indeterminate_name {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> CharT&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; char_type;&#xA0;&#xA0;
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> std::basic_string&lt; CharT &gt; string_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="indeterminate_nameconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id248385-bb">indeterminate_name</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id303423-bb">indeterminate_name</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> string_type &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id282868-bb">public member functions</fo:basic-link></fo:inline>
&#xA0;&#xA0;string_type <fo:basic-link internal-destination="id415705-bb">name</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-weight="bold">static</fo:inline> std::locale::id id;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id617008"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The facet is used to perform I/O on tribool values when <fo:inline font-family="monospace">std::boolalpha</fo:inline>  has been specified. This class template is only available if the C++ standard library implementation supports locales. </fo:block><fo:block id="id617024"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">indeterminate_name construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="indeterminate_nameconstruct-copy-destruct"/><fo:inline font-family="monospace">indeterminate_name</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id617040" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id617046" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id617049" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id248385-bb"/>indeterminate_name();</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id617062" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id617065" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id303423-bb"/>indeterminate_name(<fo:inline font-weight="bold">const</fo:inline> string_type &amp; name);</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id617085"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">indeterminate_name public member functions</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id282868-bb"/><fo:inline font-family="monospace">indeterminate_name</fo:inline> public member functions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id617100" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id617106" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id617108" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">string_type <fo:wrapper id="id415705-bb"/>name() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id224510"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template get_default_indeterminate_name</fo:block></fo:block><fo:block space-after="1em">Function template get_default_indeterminate_name <fo:inline font-family="serif">--</fo:inline> Returns a string containing the default name for the indeterminate value of a tribool with the given character type T. </fo:block><fo:block>boost::logic::get_default_indeterminate_name</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id617153"><fo:block/><fo:block id="id617154" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; std::basic_string&lt; T &gt; get_default_indeterminate_name();</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id617178"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This routine is used by the input and output streaming operators for tribool when there is no locale support or the stream's locale does not contain the indeterminate_name facet. </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id495324"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template operator&lt;&lt;</fo:block></fo:block><fo:block space-after="1em">Function template operator&lt;&lt; <fo:inline font-family="serif">--</fo:inline> Writes the value of a tribool to a stream. </fo:block><fo:block>boost::logic::operator&lt;&lt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id617208"><fo:block/><fo:block id="id617209" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> Traits&gt; 
&#xA0;&#xA0;std::basic_ostream&lt; CharT, Traits &gt; &amp; 
&#xA0;&#xA0;<fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt; CharT, Traits &gt; &amp; out, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> x);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id617255"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When the value of <fo:inline font-family="monospace">x</fo:inline>  is either <fo:inline font-family="monospace">true</fo:inline>  or <fo:inline font-family="monospace">false</fo:inline> , this routine is semantically equivalent to: <fo:block id="id617282" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"> out &lt;&lt; static_cast&lt;bool&gt;(x); 
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When <fo:inline font-family="monospace">x</fo:inline>  has an indeterminate value, it outputs either the integer value 2 (if <fo:inline font-family="monospace">(out.flags() &amp; std::ios_base::boolalpha) == 0</fo:inline> ) or the name of the indeterminate value. The name of the indeterminate value comes from the indeterminate_name facet (if it is defined in the output stream's locale), or from the get_default_indeterminate_name function (if it is not defined in the locale or if the C++ standard library implementation does not support locales).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id617313" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id617317" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">out</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id269271"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template operator&gt;&gt;</fo:block></fo:block><fo:block space-after="1em">Function template operator&gt;&gt; <fo:inline font-family="serif">--</fo:inline> Reads a tribool value from a stream. </fo:block><fo:block>boost::logic::operator&gt;&gt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id617349"><fo:block/><fo:block id="id617350" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> CharT, <fo:inline font-weight="bold">typename</fo:inline> Traits&gt; 
&#xA0;&#xA0;std::basic_istream&lt; CharT, Traits &gt; &amp; 
&#xA0;&#xA0;<fo:inline font-weight="bold">operator</fo:inline>&gt;&gt;(std::basic_istream&lt; CharT, Traits &gt; &amp; in, <fo:basic-link internal-destination="boost.logic.tribool">tribool</fo:basic-link> &amp; x);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id617396"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When <fo:inline font-family="monospace">(out.flags() &amp; std::ios_base::boolalpha) == 0</fo:inline> , this function reads a <fo:inline font-family="monospace">long</fo:inline>  value from the input stream <fo:inline font-family="monospace">in</fo:inline>  and converts that value to a tribool. If that value is 0, <fo:inline font-family="monospace">x</fo:inline>  becomes <fo:inline font-family="monospace">false</fo:inline> ; if it is 1, <fo:inline font-family="monospace">x</fo:inline>  becomes <fo:inline font-family="monospace">true</fo:inline> ; if it is 2, <fo:inline font-family="monospace">becomes</fo:inline><fo:inline font-family="monospace">indetermine</fo:inline> ; otherwise, the operation fails (and the fail bit is set on the input stream <fo:inline font-family="monospace">in</fo:inline> ).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When <fo:inline font-family="monospace">(out.flags() &amp; std::ios_base::boolalpha) != 0</fo:inline> , this function first determines the names of the false, true, and indeterminate values. The false and true names are extracted from the <fo:inline font-family="monospace">std::numpunct</fo:inline>  facet of the input stream's locale (if the C++ standard library implementation supports locales), or from the <fo:inline font-family="monospace">default_false_name</fo:inline>  and <fo:inline font-family="monospace">default_true_name</fo:inline>  functions (if there is no locale support). The indeterminate name is extracted from the appropriate <fo:inline font-family="monospace">indeterminate_name</fo:inline>  facet (if it is available in the input stream's locale), or from the <fo:inline font-family="monospace">get_default_indeterminate_name</fo:inline>  function (if the C++ standard library implementation does not support locales, or the <fo:inline font-family="monospace">indeterminate_name</fo:inline>  facet is not specified for this locale object). The input is then matched to each of these names, and the tribool <fo:inline font-family="monospace">x</fo:inline>  is assigned the value corresponding to the longest name that matched. If no name is matched or all names are empty, the operation fails (and the fail bit is set on the input stream <fo:inline font-family="monospace">in</fo:inline> ).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"/><fo:list-block id="id617550" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id617553" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">in</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="tribool.tests"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Testsuite</fo:marker><fo:block font-size="17.28pt">Testsuite</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="tribool.tests.acceptance"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Acceptance tests</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id617583" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2" column-width="1in"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Test</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">If failing...</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/logic/test/tribool_test.cpp">tribool_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test all features of the
      <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.logic.tribool">boost::logic::tribool</fo:basic-link></fo:inline>
      class.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/logic/test/tribool_rename_test.cpp">tribool_rename_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test the use of the
      <fo:inline font-family="monospace"><fo:basic-link internal-destination="BOOST_TRIBOOL_THIRD_STATE">BOOST_TRIBOOL_THIRD_STATE</fo:basic-link></fo:inline>
      macro.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link external-destination="../../libs/logic/test/tribool_io_test.cpp">tribool_io_test.cpp</fo:basic-link></fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">run</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test tribool input/output.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Variant</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Variant</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="variant"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Boost.Variant</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Eric Friedman</fo:block></fo:block><fo:block space-before="0.5em" space-after="0.5em" font-size="14.4pt"><fo:block>Itay Maman</fo:block></fo:block><fo:block>Copyright <fo:inline font-family="serif">&#xA9;</fo:inline> 2002, 2003 Eric FriedmanItay Maman</fo:block><fo:block><fo:block id="id617719"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Permission to copy, use, sell and distribute this software
    is granted provided this copyright notice appears in all copies.
    Permission to modify the code and to distribute modified code is
    granted provided this copyright notice appears in all copies, and
    a notice that the code was modified is included with the copyright
    notice.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> This software is provided "as is" without express or
    implied warranty, and with no claim as to its suitability for any
    purpose.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.intro"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="17.28pt">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.abstract"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Abstract</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">variant</fo:inline> class template is a safe, generic, stack-based
discriminated union container, offering a simple solution for manipulating an
object from a heterogeneous set of types in a uniform manner. Whereas
standard containers such as <fo:inline font-family="monospace">std::vector</fo:inline> may be thought of as
"<fo:inline font-weight="bold">multi-value, single type</fo:inline>,"
<fo:inline font-family="monospace">variant</fo:inline> is "<fo:inline font-weight="bold">multi-type,
single value</fo:inline>."</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Notable features of <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link></fo:inline>
include:</fo:block><fo:list-block id="id617813" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id617814" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Full value semantics, including adherence to standard
    overload resolution rules for conversion operations.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id617819" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Compile-time type-safe value visitation via
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="apply_visitor">boost::apply_visitor</fo:basic-link></fo:inline>.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id617836" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Run-time checked explicit value retrieval via
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="get">boost::get</fo:basic-link></fo:inline>.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id617851" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Support for recursive variant types via both
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="make_recursive_variant">boost::make_recursive_variant</fo:basic-link></fo:inline> and
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="recursive_wrapper">boost::recursive_wrapper</fo:basic-link></fo:inline>.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id617882" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Efficient implementation -- stack-based when possible (see
    <fo:basic-link internal-destination="variant.design.never-empty">the section called &#x201C;"Never-Empty" Guarantee&#x201D;</fo:basic-link> for more details).</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="variant.motivation"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Motivation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.motivation.problem"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Problem</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Many times, during the development of a C++ program, the
programmer finds himself in need of manipulating several distinct
types in a uniform manner. Indeed, C++ features direct language
support for such types through its <fo:inline font-family="monospace">union</fo:inline> 
keyword:</fo:block><fo:block id="id617926" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">union { int i; double d; } u;
u.d = 3.14;
u.i = 3; // overwrites u.d (OK: u.d is a POD type)</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">C++'s <fo:inline font-family="monospace">union</fo:inline> construct, however, is nearly
useless in an object-oriented environment. The construct entered
the language primarily as a means for preserving compatibility with
C, which supports only POD (Plain Old Data) types, and so does not
accept types exhibiting non-trivial construction or
destruction:</fo:block><fo:block id="id617947" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">union {
  int i;
  std::string s; // illegal: std::string is not a POD type!
} u;</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Clearly another approach is required. Typical solutions
feature the dynamic-allocation of objects, which are subsequently
manipulated through a common base type (often a virtual base class
    [<fo:basic-link internal-destination="variant.refs.hen01">Hen01</fo:basic-link>]
or, more dangerously, a <fo:inline font-family="monospace">void*</fo:inline>). Objects of
concrete type may be then retrieved by way of a polymorphic downcast
construct (e.g., <fo:inline font-family="monospace">dynamic_cast</fo:inline>,
<fo:inline font-family="monospace"><fo:basic-link internal-destination="any_cast">boost::any_cast</fo:basic-link></fo:inline>, etc.).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">However, solutions of this sort are highly error-prone, due
to the following:</fo:block><fo:list-block id="id617999" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id618000" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-style="italic">Downcast errors cannot be detected at
    compile-time.</fo:inline> Thus, incorrect usage of downcast
    constructs will lead to bugs detectable only at run-time.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id618008" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-style="italic">Addition of new concrete types may be 
    ignored.</fo:inline> If a new concrete type is added to the
    hierarchy, existing downcast code will continue to work as-is,
    wholly ignoring the new type. Consequently, the programmer must
    manually locate and modify code at numerous locations, which often
    results in run-time errors that are difficult to find.</fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Furthermore, even when properly implemented, these solutions tend
to incur a relatively significant abstraction penalty due to the use of
the heap, virtual function calls, and polymorphic downcasts.</fo:block></fo:block><fo:block id="variant.motivation.solution"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Solution: A Motivating Example</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link></fo:inline> class template
addresses these issues in a safe, straightforward, and efficient manner. The
following example demonstrates how the class can be used:</fo:block><fo:block id="id618051" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">#include "boost/variant.hpp"
#include &lt;iostream&gt;

class my_visitor : public <fo:basic-link internal-destination="static_visitor">boost::static_visitor</fo:basic-link>&lt;int&gt;
{
public:
    int operator()(int i) const
    {
        return i;
    }
    
    int operator()(const std::string &amp; str) const
    {
        return str.length();
    }
};

int main()
{
    <fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link>&lt; int, std::string &gt; u("hello world");
    std::cout &lt;&lt; u; // output: hello world

    int result = <fo:basic-link internal-destination="apply_visitor">boost::apply_visitor</fo:basic-link>( my_visitor(), u );
    std::cout &lt;&lt; result; // output: 11 (i.e., length of "hello world")
}
</fo:block></fo:block></fo:block></fo:block><fo:block id="variant.tutorial"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Tutorial</fo:marker><fo:block font-size="17.28pt">Tutorial</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.tutorial.basic"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Basic Usage</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A discriminated union container on some set of types is defined by
  instantiating the <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link></fo:inline> class
  template with the desired types. These types are called
  <fo:inline font-weight="bold">bounded types</fo:inline> and are subject to the
  requirements of the
  <fo:basic-link internal-destination="variant.concepts.bounded-type"><fo:inline font-style="italic">BoundedType</fo:inline></fo:basic-link>
  concept. Any number of bounded types may be specified, up to some
  implementation-defined limit (see 
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</fo:basic-link></fo:inline>).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For example, the following declares a discriminated union container on
  <fo:inline font-family="monospace">int</fo:inline> and <fo:inline font-family="monospace">std::string</fo:inline>:

<fo:block id="id618185" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link>&lt; int, std::string &gt; v;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">By default, a <fo:inline font-family="monospace">variant</fo:inline> default-constructs its first
  bounded type, so <fo:inline font-family="monospace">v</fo:inline> initially contains <fo:inline font-family="monospace">int(0)</fo:inline>. If
  this is not desired, or if the first bounded type is not
  default-constructible, a <fo:inline font-family="monospace">variant</fo:inline> can be constructed
  directly from any value convertible to one of its bounded types. Similarly,
  a <fo:inline font-family="monospace">variant</fo:inline> can be assigned any value convertible to one of its
  bounded types, as demonstrated in the following:

<fo:block id="id618238" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">v = "hello";</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Now <fo:inline font-family="monospace">v</fo:inline> contains a <fo:inline font-family="monospace">std::string</fo:inline> equal to
  <fo:inline font-family="monospace">"hello"</fo:inline>. We can demonstrate this by
  <fo:inline font-weight="bold">streaming</fo:inline>&#xA0;<fo:inline font-family="monospace">v</fo:inline> to standard
  output:

<fo:block id="id618280" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::cout &lt;&lt; v &lt;&lt; std::endl;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Usually though, we would like to do more with the content of a
  <fo:inline font-family="monospace">variant</fo:inline> than streaming. Thus, we need some way to access the
  contained value. There are two ways to accomplish this:
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="apply_visitor">apply_visitor</fo:basic-link></fo:inline>, which is safest
  and very powerful, and
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="get">get</fo:basic-link>&lt;T&gt;</fo:inline>, which is
  sometimes more convenient to use.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For instance, suppose we wanted to concatenate to the string contained
  in <fo:inline font-family="monospace">v</fo:inline>. With <fo:inline font-weight="bold">value retrieval</fo:inline>
  by <fo:inline font-family="monospace"><fo:basic-link internal-destination="get">get</fo:basic-link></fo:inline>, this may be accomplished
  quite simply, as seen in the following:

<fo:block id="id618353" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::string&amp; str = <fo:basic-link internal-destination="get">boost::get</fo:basic-link>&lt;std::string&gt;(v);
str += " world! ";</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As desired, the <fo:inline font-family="monospace">std::string</fo:inline> contained by <fo:inline font-family="monospace">v</fo:inline> now
  is equal to <fo:inline font-family="monospace">"hello world! "</fo:inline>. Again, we can demonstrate this by
  streaming <fo:inline font-family="monospace">v</fo:inline> to standard output:

<fo:block id="id618397" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::cout &lt;&lt; v &lt;&lt; std::endl;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">While use of <fo:inline font-family="monospace">get</fo:inline> is perfectly acceptable in this trivial
  example, <fo:inline font-family="monospace">get</fo:inline> generally suffers from several significant
  shortcomings. For instance, if we were to write a function accepting a
  <fo:inline font-family="monospace">variant&lt;int, std::string&gt;</fo:inline>, we would not know whether
  the passed <fo:inline font-family="monospace">variant</fo:inline> contained an <fo:inline font-family="monospace">int</fo:inline> or a
  <fo:inline font-family="monospace">std::string</fo:inline>. If we insisted upon continued use of
  <fo:inline font-family="monospace">get</fo:inline>, we would need to query the <fo:inline font-family="monospace">variant</fo:inline> for its
  contained type. The following function, which "doubles" the
  content of the given <fo:inline font-family="monospace">variant</fo:inline>, demonstrates this approach:

<fo:block id="id618472" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">void times_two( boost::variant&lt; int, std::string &gt; &amp; operand )
{
    if ( int* pi = <fo:basic-link internal-destination="get">boost::get</fo:basic-link>&lt;int&gt;( &amp;v ) )
        *pi *= 2;
    else if ( std::string* pstr = <fo:basic-link internal-destination="get">boost::get</fo:basic-link>&lt;std::string&gt;( &amp;v ) )
        *pstr += *pstr;
}</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">However, such code is quite brittle, and without careful attention will
  likely lead to the introduction of subtle logical errors detectable only at
  runtime. For instance, consider if we wished to extend
  <fo:inline font-family="monospace">times_two</fo:inline> to operate on a <fo:inline font-family="monospace">variant</fo:inline> with additional
  bounded types. Specifically, let's add
  <fo:inline font-family="monospace">std::complex&lt;double&gt;</fo:inline> to the set. Clearly, we would need
  to at least change the function declaration:

<fo:block id="id618528" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">void times_two( boost::variant&lt; int, std::string, std::complex&lt;double&gt; &gt; &amp; operand )
{
    // as above...?
}</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Of course, additional changes are required, for currently if the passed
  <fo:inline font-family="monospace">variant</fo:inline> in fact contained a <fo:inline font-family="monospace">std::complex</fo:inline> value,
  <fo:inline font-family="monospace">times_two</fo:inline> would silently return -- without any of the desired
  side-effects and without any error. In this case, the fix is obvious. But in
  more complicated programs, it could take considerable time to identify and
  locate the error in the first place.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Thus, real-world use of <fo:inline font-family="monospace">variant</fo:inline> typically demands an access
  mechanism more robust than <fo:inline font-family="monospace">get</fo:inline>. For this reason,
  <fo:inline font-family="monospace">variant</fo:inline> supports compile-time checked
  <fo:inline font-weight="bold">visitation</fo:inline> via
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="apply_visitor">apply_visitor</fo:basic-link></fo:inline>. Visitation requires
  that the programmer explicitly handle (or ignore) each bounded type. Failure
  to do so results in a compile-time error.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Visitation of a <fo:inline font-family="monospace">variant</fo:inline> requires a visitor object. The
  following demonstrates one such implementation of a visitor implementating
  behavior identical to <fo:inline font-family="monospace">times_two</fo:inline>:

<fo:block id="id618627" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">class times_two_visitor
    : public <fo:basic-link internal-destination="static_visitor">boost::static_visitor</fo:basic-link>&lt;&gt;
{
public:

    void operator()(int &amp; i) const
    {
        i *= 2;
    }

    void operator()(std::string &amp; str) const
    {
        str += str;
    }

};</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With the implementation of the above visitor, we can then apply it to
  <fo:inline font-family="monospace">v</fo:inline>, as seen in the following:

<fo:block id="id618657" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="apply_visitor">boost::apply_visitor</fo:basic-link>( times_two_visitor(), v );</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As expected, the content of <fo:inline font-family="monospace">v</fo:inline> is now a
  <fo:inline font-family="monospace">std::string</fo:inline> equal to <fo:inline font-family="monospace">"hello world! hello world! "</fo:inline>.
  (We'll skip the verification this time.)</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In addition to enhanced robustness, visitation provides another
  important advantage over <fo:inline font-family="monospace">get</fo:inline>: the ability to write generic
  visitors. For instance, the following visitor will "double" the
  content of <fo:inline font-style="italic">any</fo:inline>&#xA0;<fo:inline font-family="monospace">variant</fo:inline> (provided its
  bounded types each support operator+=):

<fo:block id="id618716" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">class times_two_generic
    : public <fo:basic-link internal-destination="static_visitor">boost::static_visitor</fo:basic-link>&lt;&gt;
{
public:

    template &lt;typename T&gt;
    void operator()( T &amp; operand ) const
    {
        operand += operand;
    }

};</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Again, <fo:inline font-family="monospace">apply_visitor</fo:inline> sets the wheels in motion:

<fo:block id="id618743" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="apply_visitor">boost::apply_visitor</fo:basic-link>( times_two_generic(), v );</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">While the initial setup costs of visitation may exceed that required for
  <fo:inline font-family="monospace">get</fo:inline>, the benefits quickly become significant. Before concluding
  this section, we should explore one last benefit of visitation with
  <fo:inline font-family="monospace">apply_visitor</fo:inline>:
  <fo:inline font-weight="bold">delayed visitation</fo:inline>. Namely, a special form
  of <fo:inline font-family="monospace">apply_visitor</fo:inline> is available that does not immediately apply
  the given visitor to any <fo:inline font-family="monospace">variant</fo:inline> but rather returns a function
  object that operates on any <fo:inline font-family="monospace">variant</fo:inline> given to it. This behavior
  is particularly useful when operating on sequences of <fo:inline font-family="monospace">variant</fo:inline>
  type, as the following demonstrates:

<fo:block id="id618812" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::vector&lt; <fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link>&lt;int, std::string&gt; &gt; vec;
vec.push_back( 21 );
vec.push_back( "hello " );

times_two_generic visitor;
std::for_each(
      vec.begin(), vec.end()
   , <fo:basic-link internal-destination="apply_visitor">boost::apply_visitor</fo:basic-link>(visitor)
   );</fo:block></fo:block></fo:block><fo:block id="variant.tutorial.advanced"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Advanced Topics</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This section discusses several features of the library often required
  for advanced uses of <fo:inline font-family="monospace">variant</fo:inline>. Unlike in the above section, each
  feature presented below is largely independent of the others. Accordingly,
  this section is not necessarily intended to be read linearly or in its
  entirety.</fo:block><fo:block id="variant.tutorial.preprocessor"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Preprocessor macros</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">While the <fo:inline font-family="monospace">variant</fo:inline> class template's variadic parameter
    list greatly simplifies use for specific instantiations of the template,
    it significantly complicates use for generic instantiations. For instance,
    while it is immediately clear how one might write a function accepting a
    specific <fo:inline font-family="monospace">variant</fo:inline> instantiation, say
    <fo:inline font-family="monospace">variant&lt;int, std::string&gt;</fo:inline>, it is less clear how one
    might write a function accepting any given <fo:inline font-family="monospace">variant</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Due to the lack of support for true variadic template parameter lists
    in the C++98 standard, the preprocessor is needed. While the
    <fo:basic-link external-destination="../../libs/preprocessor/index.html">Preprocessor</fo:basic-link> library provides a general and
    powerful solution, the need to repeat
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</fo:basic-link></fo:inline>
    unnecessarily clutters otherwise simple code. Therefore, for common
    use-cases, this library provides its own macro
    <fo:inline font-family="monospace"><fo:inline font-weight="bold"><fo:basic-link internal-destination="BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</fo:basic-link></fo:inline></fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This macro simplifies for the user the process of declaring 
    <fo:inline font-family="monospace">variant</fo:inline> types in function templates or explicit partial
    specializations of class templates, as shown in the following:

<fo:block id="id618968" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">// general cases
template &lt;typename T&gt; void some_func(const T &amp;);
template &lt;typename T&gt; class some_class;

// function template overload
template &lt;<fo:basic-link internal-destination="BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</fo:basic-link>(typename T)&gt;
void some_func(const <fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link>&lt;<fo:basic-link internal-destination="BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</fo:basic-link>(T)&gt; &amp;);

// explicit partial specialization
template &lt;<fo:basic-link internal-destination="BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</fo:basic-link>(typename T)&gt;
class some_class&lt; <fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link>&lt;<fo:basic-link internal-destination="BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</fo:basic-link>(T)&gt; &gt;;</fo:block></fo:block></fo:block><fo:block id="variant.tutorial.over-sequence"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Using a type sequence to specify bounded types</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">While convenient for typical uses, the <fo:inline font-family="monospace">variant</fo:inline> class
    template's variadic template parameter list is limiting in two significant
    dimensions. First, due to the lack of support for true variadic template 
    parameter lists in C++, the number of parameters must be limited to some
    implementation-defined maximum (namely,
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</fo:basic-link></fo:inline>).
    Second, the nature of parameter lists in general makes compile-time
    manipulation of the lists excessively difficult.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To solve these problems,
    <fo:inline font-family="monospace">make_variant_over&lt; <fo:inline font-style="italic">Sequence</fo:inline> &gt;</fo:inline>
    exposes a <fo:inline font-family="monospace">variant</fo:inline> whose bounded types are the elements of
    <fo:inline font-family="monospace">Sequence</fo:inline> (where <fo:inline font-family="monospace">Sequence</fo:inline> is any type fulfilling
    the requirements of <fo:basic-link external-destination="../../libs/mpl/index.html">MPL</fo:basic-link>'s
    <fo:inline font-style="italic">Sequence</fo:inline> concept). For instance,

<fo:block id="id619119" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">typedef mpl::vector&lt; std::string &gt; types_initial;
typedef mpl::push_front&lt; types_initial, int &gt;::type types;

<fo:basic-link internal-destination="make_variant_over">boost::make_variant_over</fo:basic-link>&lt; types &gt;::type v1;</fo:block>

    behaves equivalently to

<fo:block id="id619140" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link>&lt; int, std::string &gt; v2;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Portability</fo:inline>: Unfortunately, due to
    standard conformance issues in several compilers,
    <fo:inline font-family="monospace">make_variant_over</fo:inline> is not universally available. On these
    compilers the library indicates its lack of support for the syntax via the
    definition of the preprocessor symbol
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="id544182">BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</fo:basic-link></fo:inline>.</fo:block></fo:block><fo:block id="variant.tutorial.recursive"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Recursive <fo:inline font-family="monospace">variant</fo:inline> types</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Recursive types facilitate the construction of complex semantics from
    simple syntax. For instance, nearly every programmer is familiar with the
    canonical definition of a linked list implementation, whose simple
    definition allows sequences of unlimited length:

<fo:block id="id619208" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">template &lt;typename T&gt;
struct list_node
{
    T data;
    list_node * next;
};</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The nature of <fo:inline font-family="monospace">variant</fo:inline> as a generic class template
    unfortunately precludes the straightforward construction of recursive
    <fo:inline font-family="monospace">variant</fo:inline> types. Consider the following attempt to construct
    a structure for simple mathematical expressions:

    <fo:block id="id619235" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">struct add;
struct sub;
template &lt;typename OpTag&gt; struct binary_op;

typedef <fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link>&lt;
      int
    , binary_op&lt;add&gt;
    , binary_op&lt;sub&gt;
    &gt; expression;

template &lt;typename OpTag&gt;
struct binary_op
{
    expression left;  // <fo:inline font-style="italic">variant instantiated here...</fo:inline>
    expression right;

    binary_op( const expression &amp; lhs, const expression &amp; rhs )
        : left(lhs), right(rhs)
    {
    }

}; // <fo:inline font-style="italic">...but binary_op not complete until here!</fo:inline></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">While well-intentioned, the above approach will not compile because
    <fo:inline font-family="monospace">binary_op</fo:inline> is still incomplete when the <fo:inline font-family="monospace">variant</fo:inline>
    type <fo:inline font-family="monospace">expression</fo:inline> is instantiated. Further, the approach suffers
    from a more significant logical flaw: even if C++ syntax were different
    such that the above example could be made to "work,"
    <fo:inline font-family="monospace">expression</fo:inline> would need to be of infinite size, which is
    clearly impossible.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To overcome these difficulties, <fo:inline font-family="monospace">variant</fo:inline> includes special
    support for the
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="recursive_wrapper">boost::recursive_wrapper</fo:basic-link></fo:inline> class
    template, which breaks the circular dependency at the heart of these
    problems. Further,
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="make_recursive_variant">boost::make_recursive_variant</fo:basic-link></fo:inline> provides
    a more convenient syntax for declaring recursive <fo:inline font-family="monospace">variant</fo:inline>
    types. Tutorials for use of these facilities is described in
    <fo:basic-link internal-destination="variant.tutorial.recursive.recursive-wrapper">the section called &#x201C;Recursive types with <fo:inline font-family="monospace">recursive_wrapper</fo:inline>&#x201D;</fo:basic-link> and
    <fo:basic-link internal-destination="variant.tutorial.recursive.recursive-variant">the section called &#x201C;Recursive types with <fo:inline font-family="monospace">make_recursive_variant</fo:inline>&#x201D;</fo:basic-link>.</fo:block><fo:block id="variant.tutorial.recursive.recursive-wrapper"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Recursive types with <fo:inline font-family="monospace">recursive_wrapper</fo:inline></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following example demonstrates how <fo:inline font-family="monospace">recursive_wrapper</fo:inline>
    could be used to solve the problem presented in
    <fo:basic-link internal-destination="variant.tutorial.recursive">the section called &#x201C;Recursive <fo:inline font-family="monospace">variant</fo:inline> types&#x201D;</fo:basic-link>:

    <fo:block id="id619405" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">typedef <fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link>&lt;
      int
    , <fo:basic-link internal-destination="recursive_wrapper">boost::recursive_wrapper</fo:basic-link>&lt; binary_op&lt;add&gt; &gt;
    , <fo:basic-link internal-destination="recursive_wrapper">boost::recursive_wrapper</fo:basic-link>&lt; binary_op&lt;sub&gt; &gt;
    &gt; expression;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Because <fo:inline font-family="monospace">variant</fo:inline> provides special support for
    <fo:inline font-family="monospace">recursive_wrapper</fo:inline>, clients may treat the resultant
    <fo:inline font-family="monospace">variant</fo:inline> as though the wrapper were not present. This is seen
    in the implementation of the following visitor, which calculates the value
    of an <fo:inline font-family="monospace">expression</fo:inline> without any reference to
    <fo:inline font-family="monospace">recursive_wrapper</fo:inline>:

    <fo:block id="id619477" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">class calculator : public <fo:basic-link internal-destination="static_visitor">boost::static_visitor&lt;int&gt;</fo:basic-link>
{
public:

    int operator()(int value) const
    {
        return value;
    }

    int operator()(const binary_op&lt;add&gt; &amp; binary) const
    {
        return <fo:basic-link internal-destination="apply_visitor">boost::apply_visitor</fo:basic-link>( calculator(), binary.left )
             + <fo:basic-link internal-destination="apply_visitor">boost::apply_visitor</fo:basic-link>( calculator(), binary.right );
    }

    int operator()(const binary_op&lt;sub&gt; &amp; binary) const
    {
        return <fo:basic-link internal-destination="apply_visitor">boost::apply_visitor</fo:basic-link>( calculator(), binary.left )
             - <fo:basic-link internal-destination="apply_visitor">boost::apply_visitor</fo:basic-link>( calculator(), binary.right );
    }

};</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Finally, we can demonstrate <fo:inline font-family="monospace">expression</fo:inline> in action:
  
    <fo:block id="id619543" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">void f()
{
    // result = ((7-3)+8) = 12
    expression result(
        binary_op&lt;add&gt;(
            binary_op&lt;sub&gt;(7,3)
          , 8
          )
      );

    assert( <fo:basic-link internal-destination="apply_visitor">boost::apply_visitor</fo:basic-link>(calculator(),result) == 12 );
}</fo:block></fo:block></fo:block><fo:block id="variant.tutorial.recursive.recursive-variant"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Recursive types with <fo:inline font-family="monospace">make_recursive_variant</fo:inline></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For some applications of recursive <fo:inline font-family="monospace">variant</fo:inline> types, a user
    may be able to sacrifice the full flexibility of using
    <fo:inline font-family="monospace">recursive_wrapper</fo:inline> with <fo:inline font-family="monospace">variant</fo:inline> for the following
    convenient syntax:

<fo:block id="id619605" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">typedef <fo:basic-link internal-destination="make_recursive_variant">boost::make_recursive_variant</fo:basic-link>&lt;
      int
    , std::vector&lt; boost::recursive_variant_ &gt;
    &gt;::type int_tree_t;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use of the resultant <fo:inline font-family="monospace">variant</fo:inline> type is as expected:

<fo:block id="id619630" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">std::vector&lt; int_tree_t &gt; subresult;
subresult.push_back(3);
subresult.push_back(5);

std::vector&lt; int_tree_t &gt; result;
result.push_back(1);
result.push_back(subresult);
result.push_back(7);

int_tree_t var(result);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To be clear, one might represent the resultant content of
    <fo:inline font-family="monospace">var</fo:inline> as <fo:inline font-family="monospace">( 1 ( 3 5 ) 7 )</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Finally, note that a type sequence can be used to specify the bounded
    types of a recursive <fo:inline font-family="monospace">variant</fo:inline> via the use of
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="id276892">boost::make_recursive_variant_over</fo:basic-link></fo:inline>,
    whose semantics are the same as <fo:inline font-family="monospace">make_variant_over</fo:inline> (which is
    described in <fo:basic-link internal-destination="variant.tutorial.over-sequence">the section called &#x201C;Using a type sequence to specify bounded types&#x201D;</fo:basic-link>).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Portability</fo:inline>: Unfortunately, due to
    standard conformance issues in several compilers,
    <fo:inline font-family="monospace">make_recursive_variant</fo:inline> is not universally supported. On these
    compilers the library indicates its lack of support via the definition
    of the preprocessor symbol
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="id413934">BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</fo:basic-link></fo:inline>.
    Thus, unless working with highly-conformant compilers, maximum portability
    will be achieved by instead using <fo:inline font-family="monospace">recursive_wrapper</fo:inline>, as
    described in
    <fo:basic-link internal-destination="variant.tutorial.recursive.recursive-wrapper">the section called &#x201C;Recursive types with <fo:inline font-family="monospace">recursive_wrapper</fo:inline>&#x201D;</fo:basic-link>.</fo:block></fo:block></fo:block><fo:block id="variant.tutorial.binary-visitation"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Binary visitation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As the tutorial above demonstrates, visitation is a powerful mechanism
    for manipulating <fo:inline font-family="monospace">variant</fo:inline> content. Binary visitation further
    extends the power and flexibility of visitation by allowing simultaneous
    visitation of the content of two different <fo:inline font-family="monospace">variant</fo:inline>
    objects.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Notably this feature requires that binary visitors are incompatible
    with the visitor objects discussed in the tutorial above, as they must
    operate on two arguments. The following demonstrates the implementation of
    a binary visitor:

<fo:block id="id619789" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">class are_strict_equals
    : public <fo:basic-link internal-destination="static_visitor">boost::static_visitor</fo:basic-link>&lt;bool&gt;
{
public:

    template &lt;typename T, typename U&gt;
    bool operator()( const T &amp;, const U &amp; )
    {
        return false; // cannot compare different types
    }

    template &lt;typename T&gt;
    bool operator()( const T &amp; lhs, const T &amp; rhs )
    {
        return lhs == rhs;
    }

};</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As expected, the visitor is applied to two <fo:inline font-family="monospace">variant</fo:inline>
    arguments by means of <fo:inline font-family="monospace">apply_visitor</fo:inline>:

<fo:block id="id619827" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link>&lt; int, std::string &gt; v1( "hello" );

<fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link>&lt; double, std::string &gt; v2( "hello" );
assert( <fo:basic-link internal-destination="apply_visitor">boost::apply_visitor</fo:basic-link>(are_strict_equals(), v1, v2) );

<fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link>&lt; int, const char * &gt; v3( "hello" );
assert( !<fo:basic-link internal-destination="apply_visitor">boost::apply_visitor</fo:basic-link>(are_strict_equals(), v1, v3) );</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Finally, we must note that the function object returned from the
    "delayed" form of
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="apply_visitor">apply_visitor</fo:basic-link></fo:inline> also supports
    binary visitation, as the following demonstrates:

<fo:block id="id619894" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">typedef <fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link>&lt;double, std::string&gt; my_variant;

std::vector&lt; my_variant &gt; seq1;
seq1.push_back("pi is close to ");
seq1.push_back(3.14);

std::list&lt; my_variant &gt; seq2;
seq2.push_back("pi is close to ");
seq2.push_back(3.14);

are_strict_equals visitor;
assert( std::equal(
      v1.begin(), v1.end(), v2.begin()
    , <fo:basic-link internal-destination="apply_visitor">boost::apply_visitor</fo:basic-link>( visitor )
    ) );</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.reference"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Reference</fo:marker><fo:block font-size="17.28pt">Reference</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.concepts"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Concepts</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.concepts.bounded-type"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt"><fo:inline font-style="italic">BoundedType</fo:inline></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The requirements on a <fo:inline font-weight="bold">bounded type</fo:inline>
      are as follows:</fo:block><fo:list-block id="id619965" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id619966" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="CopyConstructible">CopyConstructible</fo:basic-link> [20.1.3].</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id619976" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destructor upholds the no-throw exception-safety
        guarantee.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id619980" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Complete at the point of <fo:inline font-family="monospace">variant</fo:inline> template
        instantiation. (See
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="recursive_wrapper">boost::recursive_wrapper</fo:basic-link>&lt;T&gt;</fo:inline>
        for a type wrapper that accepts incomplete types to enable recursive
        <fo:inline font-family="monospace">variant</fo:inline> types.)</fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Every type specified as a template argument to
      <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline> must at minimum fulfill the
      above requirements. In addition, certain features of <fo:inline font-family="monospace">variant</fo:inline>
      are available only if its bounded types meet the requirements of these
      following additional concepts:</fo:block><fo:list-block id="id620036" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id620038" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="Assignable">Assignable</fo:basic-link>:
        <fo:inline font-family="monospace">variant</fo:inline> is itself <fo:inline font-style="italic">Assignable</fo:inline> if and
        only if every one of its bounded types meets the requirements of the
        concept. (Note that top-level <fo:inline font-family="monospace">const</fo:inline>-qualified types and
        reference types do <fo:inline font-style="italic">not</fo:inline> meet these
        requirements.)</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id620071" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="DefaultConstructible">DefaultConstructible</fo:basic-link> [20.1.4]:
        <fo:inline font-family="monospace">variant</fo:inline> is itself
        <fo:basic-link internal-destination="DefaultConstructible">DefaultConstructible</fo:basic-link> if and only if its first
        bounded type (i.e., <fo:inline font-family="monospace">T1</fo:inline>) meets the requirements of the
        concept.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id620105" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link>:
        <fo:inline font-family="monospace">variant</fo:inline> is itself <fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link>
        if and only if every one of its bounded types meets the requirements
        of the concept.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id620131" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="LessThanComparable">LessThanComparable</fo:basic-link>:
        <fo:inline font-family="monospace">variant</fo:inline> is itself <fo:basic-link internal-destination="LessThanComparable">LessThanComparable</fo:basic-link>
        if and only if every one of its bounded types meets the requirements
        of the concept.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id620158" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:basic-link internal-destination="variant.concepts.output-streamable"><fo:inline font-style="italic">OutputStreamable</fo:inline></fo:basic-link>:
        <fo:inline font-family="monospace">variant</fo:inline> is itself <fo:inline font-style="italic">OutputStreamable</fo:inline>
        if and only if every one of its bounded types meets the requirements
        of the concept.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="variant.concepts.static-visitor"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt"><fo:inline font-style="italic">StaticVisitor</fo:inline></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The requirements on a <fo:inline font-weight="bold">static
    visitor</fo:inline> of a type <fo:inline font-family="monospace">T</fo:inline> are as follows:</fo:block><fo:list-block id="id620212" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id620213" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Must allow invocation as a function by overloading
        <fo:inline font-family="monospace">operator()</fo:inline>, unambiguously accepting any value of type
        <fo:inline font-family="monospace">T</fo:inline>.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id620230" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Must expose inner type <fo:inline font-family="monospace">result_type</fo:inline>. (See 
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="visitor_ptr">boost::visitor_ptr</fo:basic-link></fo:inline> for a
        solution to using functions as visitors.)</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id620255" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>If <fo:inline font-family="monospace">result_type</fo:inline> is not <fo:inline font-family="monospace">void</fo:inline>, then
        each operation of the function object must return a value implicitly
        convertible to <fo:inline font-family="monospace">result_type</fo:inline>.</fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block id="variant.concepts.static-visitor.examples"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Examples</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following class satisfies the requirements of a static visitor
      of several types (i.e., explicitly: <fo:inline font-family="monospace">int</fo:inline> and
      <fo:inline font-family="monospace">std::string</fo:inline>; or, e.g., implicitly: <fo:inline font-family="monospace">short</fo:inline> and
      <fo:inline font-family="monospace">const char *</fo:inline>; etc.):</fo:block><fo:block id="id620319" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">class my_visitor
    : public <fo:basic-link internal-destination="static_visitor">boost::static_visitor</fo:basic-link>&lt;int&gt;
{
public:

    int operator()(int i)
    {
        return i * 2;
    }

    int operator()(const std::string&amp; s)
    {
        return s.length();
    }

};</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Another example is the following class, whose function-call
      operator is a member template, allowing it to operate on values of many
      types. Thus, the following class is a visitor of any type that supports
      streaming output (e.g., <fo:inline font-family="monospace">int</fo:inline>, <fo:inline font-family="monospace">double</fo:inline>,
      <fo:inline font-family="monospace">std::string</fo:inline>, etc.):</fo:block><fo:block id="id620363" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">class printer
    : public <fo:basic-link internal-destination="static_visitor">boost::static_visitor</fo:basic-link>&lt;&gt;
{
    template &lt;typename T&gt;
    void operator()(const T&amp; t)
    {
        std::cout &lt;&lt; t &lt;&lt; std::endl;
    }
};</fo:block></fo:block></fo:block><fo:block id="variant.concepts.output-streamable"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt"><fo:inline font-style="italic">OutputStreamable</fo:inline></fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The requirements on an <fo:inline font-weight="bold">output
      streamable</fo:inline> type <fo:inline font-family="monospace">T</fo:inline> are as follows:</fo:block><fo:list-block id="id620406" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id620408" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>For any object <fo:inline font-family="monospace">t</fo:inline> of type <fo:inline font-family="monospace">T</fo:inline>,
        <fo:inline font-family="monospace">std::cout &lt;&lt; t</fo:inline> must be a valid
        expression.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="header.boost.variant.hpp"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/variant.hpp">boost/variant.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.header.include-all"><fo:block/><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This header exists simply as a convenience to the user, including
      all of the headers in the <fo:inline font-family="monospace">boost/variant</fo:inline> directory.</fo:block></fo:block></fo:block><fo:block id="id262208"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/variant/variant_fwd.hpp">boost/variant/variant_fwd.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Provides forward declarations of the
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link></fo:inline>,
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="make_variant_over">boost::make_variant_over</fo:basic-link></fo:inline>,
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="make_recursive_variant">boost::make_recursive_variant</fo:basic-link></fo:inline>, and
    <fo:inline font-family="monospace"><fo:basic-link internal-destination="id276892">boost::make_recursive_variant_over</fo:basic-link></fo:inline>
    class templates and the <fo:inline font-family="monospace">boost::recursive_variant_</fo:inline> tag type.
    Also defines several preprocessor symbols, as described below.</fo:block><fo:block id="id620540" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">

<fo:basic-link internal-destination="BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</fo:basic-link>
<fo:basic-link internal-destination="BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</fo:basic-link>(param)
<fo:basic-link internal-destination="id238903">BOOST_VARIANT_ENUM_SHIFTED_PARAMS</fo:basic-link>(param)
<fo:basic-link internal-destination="id509339">BOOST_VARIANT_NO_REFERENCE_SUPPORT</fo:basic-link>
<fo:basic-link internal-destination="id544182">BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</fo:basic-link>
<fo:basic-link internal-destination="id413934">BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</fo:basic-link></fo:block><fo:block break-before="page"><fo:block id="BOOST_VARIANT_LIMIT_TYPES"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Macro BOOST_VARIANT_LIMIT_TYPES</fo:block></fo:block><fo:block space-after="1em">Macro BOOST_VARIANT_LIMIT_TYPES <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Expands to the length of the
        template parameter list for
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline>.</fo:block></fo:block><fo:block>BOOST_VARIANT_LIMIT_TYPES</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id620631"><fo:block/><fo:block id="id620632" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">BOOST_VARIANT_LIMIT_TYPES</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id620637"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Note</fo:inline>: Conforming
        implementations of <fo:inline font-family="monospace">variant</fo:inline> must allow at least ten
        template arguments. That is, BOOST_VARIANT_LIMIT_TYPES must be greater
        or equal to <fo:inline font-family="monospace">10</fo:inline>.</fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="BOOST_VARIANT_ENUM_PARAMS"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Macro BOOST_VARIANT_ENUM_PARAMS</fo:block></fo:block><fo:block space-after="1em">Macro BOOST_VARIANT_ENUM_PARAMS <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Enumerate parameters for use with
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline>.</fo:block></fo:block><fo:block>BOOST_VARIANT_ENUM_PARAMS</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id620698"><fo:block/><fo:block id="id620699" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">BOOST_VARIANT_ENUM_PARAMS(param)</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id620704"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Expands to a comma-separated sequence of length
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</fo:basic-link></fo:inline>, where
        each element in the sequence consists of the concatenation of
        <fo:inline font-style="italic">param</fo:inline> with its zero-based index into the
        sequence. That is,
        <fo:inline font-family="monospace">param ## 0, param ## 1, ..., param ## BOOST_VARIANT_LIMIT_TYPES - 1</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Rationale</fo:inline>: This macro greatly
        simplifies for the user the process of declaring
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline> types
        in function templates or explicit partial specializations of class
        templates, as shown in the
        <fo:basic-link internal-destination="variant.tutorial.preprocessor">tutorial</fo:basic-link>.</fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id238903"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Macro BOOST_VARIANT_ENUM_SHIFTED_PARAMS</fo:block></fo:block><fo:block space-after="1em">Macro BOOST_VARIANT_ENUM_SHIFTED_PARAMS <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Enumerate all but the first parameter for use with
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline>.</fo:block></fo:block><fo:block>BOOST_VARIANT_ENUM_SHIFTED_PARAMS</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id620804"><fo:block/><fo:block id="id620806" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">BOOST_VARIANT_ENUM_SHIFTED_PARAMS(param)</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id620811"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Expands to a comma-separated sequence of length
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</fo:basic-link> - 1</fo:inline>,
        where each element in the sequence consists of the concatenation of
        <fo:inline font-style="italic">param</fo:inline> with its one-based index into the sequence.
        That is,
        <fo:inline font-family="monospace">param ## 1, ..., param ## BOOST_VARIANT_LIMIT_TYPES - 1</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Note</fo:inline>: This macro results in the
        same expansion as
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="BOOST_VARIANT_ENUM_PARAMS">BOOST_VARIANT_ENUM_PARAMS</fo:basic-link></fo:inline> -- but
        without the first term.</fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id509339"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Macro BOOST_VARIANT_NO_REFERENCE_SUPPORT</fo:block></fo:block><fo:block space-after="1em">Macro BOOST_VARIANT_NO_REFERENCE_SUPPORT <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Indicates <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline> does not
        support references as bounded types.</fo:block></fo:block><fo:block>BOOST_VARIANT_NO_REFERENCE_SUPPORT</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id620900"><fo:block/><fo:block id="id620902" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">BOOST_VARIANT_NO_REFERENCE_SUPPORT</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id620907"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defined only if <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline> does
        not support references as bounded types.</fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id544182"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Macro BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</fo:block></fo:block><fo:block space-after="1em">Macro BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Indicates absence of support for specifying the bounded types
        of a <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline> by the elements of a
        type sequence.</fo:block></fo:block><fo:block>BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id620961"><fo:block/><fo:block id="id620962" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id620968"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defined only if
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="make_variant_over">make_variant_over</fo:basic-link></fo:inline> and
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="id276892">make_recursive_variant_over</fo:basic-link></fo:inline>
        are not supported for some reason on the target compiler.</fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id413934"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Macro BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</fo:block></fo:block><fo:block space-after="1em">Macro BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Indicates
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="make_recursive_variant">make_recursive_variant</fo:basic-link></fo:inline> operates in
        an implementation-defined manner.</fo:block></fo:block><fo:block>BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id621034"><fo:block/><fo:block id="id621035" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id621041"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Defined only if
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="make_recursive_variant">make_recursive_variant</fo:basic-link></fo:inline> does not
        operate as documented on the target compiler, but rather in an
        implementation-defined manner.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Implementation Note</fo:inline>: If
        <fo:inline font-family="monospace">BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</fo:inline> is
        defined for the target compiler, the current implementation uses the
        <fo:basic-link external-destination="../../libs/mpl/index.html">MPL</fo:basic-link> lambda mechanism to approximate the
        desired behavior. (In most cases, however, such compilers do not have
        full lambda support either.)</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id516960"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/variant/variant.hpp">boost/variant/variant.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id621104" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2 = <fo:inline font-style="italic">unspecified</fo:inline>, ..., 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> TN = <fo:inline font-style="italic">unspecified</fo:inline>&gt; 
  &#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>;

&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Sequence&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="make_variant_over">make_variant_over</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id503912">swap</fo:basic-link>(<fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; &amp;, <fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ElemType, <fo:inline font-weight="bold">typename</fo:inline> Traits, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> TN&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;std::basic_ostream&lt;ElemType,Traits&gt; &amp; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id227095"><fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;</fo:basic-link>(std::basic_ostream&lt;ElemType,Traits&gt; &amp;, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; &amp;);
}</fo:block><fo:block break-before="page"><fo:block id="boost.variant"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template variant</fo:block></fo:block><fo:block space-after="1em">Class template variant <fo:inline font-family="serif">--</fo:inline> Safe, generic, stack-based discriminated union container.</fo:block><fo:block>boost::variant</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id621351"><fo:block/><fo:block id="id621352" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2 = <fo:inline font-style="italic">unspecified</fo:inline>, ..., 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> TN = <fo:inline font-style="italic">unspecified</fo:inline>&gt; 
<fo:inline font-weight="bold">class</fo:inline> variant {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">unspecified</fo:inline> types;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="boost.variantconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id372464-bb">variant</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id508111-bb">variant</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> variant &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:basic-link internal-destination="id552173-bb">variant</fo:basic-link>(T &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:basic-link internal-destination="id399284-bb">variant</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> T &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U1, <fo:inline font-weight="bold">typename</fo:inline> U2, ..., <fo:inline font-weight="bold">typename</fo:inline> UN&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id571867-bb">variant</fo:basic-link>(variant&lt;U1, U2, ..., UN&gt; &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U1, <fo:inline font-weight="bold">typename</fo:inline> U2, ..., <fo:inline font-weight="bold">typename</fo:inline> UN&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="id452740-bb">variant</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> variant&lt;U1, U2, ..., UN&gt; &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id452937-bb">~variant</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id542939-bb">modifiers</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id558196-bb">swap</fo:basic-link>(variant &amp;);
&#xA0;&#xA0;variant &amp; <fo:basic-link internal-destination="id506925-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> variant &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; variant &amp; <fo:basic-link internal-destination="id454843-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> T &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id463182-bb">queries</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">int</fo:inline> <fo:basic-link internal-destination="id479663-bb">which</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id489830-bb">empty</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> std::type_info &amp; <fo:basic-link internal-destination="id443569-bb">type</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id401169-bb">relational</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id266128-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> variant &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id480375-bb"><fo:inline font-weight="bold">operator</fo:inline>==</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> U &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">bool</fo:inline> <fo:basic-link internal-destination="id498388-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> variant &amp;) <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id458182-bb"><fo:inline font-weight="bold">operator</fo:inline>&lt;</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> U &amp;) <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id621960"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">variant</fo:inline> class template (inspired by Andrei
        Alexandrescu's class of the same name
        [<fo:basic-link internal-destination="variant.refs.ale01a">Ale01A</fo:basic-link>]) is an efficient,
        <fo:basic-link internal-destination="variant.tutorial.recursive">recursive-capable</fo:basic-link>,
        bounded discriminated union value type capable of containing any value
        type (either POD or non-POD). It supports construction from any type
        convertible to one of its bounded types or from a source
        <fo:inline font-family="monospace">variant</fo:inline> whose bounded types are each convertible to one
        of the destination <fo:inline font-family="monospace">variant</fo:inline>'s bounded types. As well,
        through <fo:inline font-family="monospace"><fo:basic-link internal-destination="apply_visitor">apply_visitor</fo:basic-link></fo:inline>,
        <fo:inline font-family="monospace">variant</fo:inline> supports compile-time checked, type-safe
        visitation; and through <fo:inline font-family="monospace"><fo:basic-link internal-destination="get">get</fo:basic-link></fo:inline>,
        <fo:inline font-family="monospace">variant</fo:inline> supports run-time checked, type-safe value
        retrieval.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Notes</fo:inline>:</fo:block><fo:list-block id="id622059" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id622060" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The bounded types of the <fo:inline font-family="monospace">variant</fo:inline> are exposed
            via the nested typedef <fo:inline font-family="monospace">types</fo:inline>, which is an
            <fo:basic-link external-destination="../../libs/mpl/index.html">MPL</fo:basic-link>-compatible Sequence containing the
            set of types that must be handled by any
            <fo:basic-link internal-destination="variant.concepts.static-visitor">visitor</fo:basic-link> to
            the <fo:inline font-family="monospace">variant</fo:inline>.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622102" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>All members of <fo:inline font-family="monospace">variant</fo:inline> satisfy at least the
            basic guarantee of exception-safety. That is, all operations on
            a <fo:inline font-family="monospace">variant</fo:inline> remain defined even after previous
            operations have failed.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622121" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Each type specified as a template argument to
            <fo:inline font-family="monospace">variant</fo:inline> must meet the requirements of the
            <fo:inline font-style="italic"><fo:basic-link internal-destination="variant.concepts.bounded-type">BoundedType</fo:basic-link></fo:inline>
            concept.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622142" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Each type specified as a template argument to
            <fo:inline font-family="monospace">variant</fo:inline> must be distinct after removal of qualifiers.
            Thus, for instance, both <fo:inline font-family="monospace">variant&lt;int, int&gt;</fo:inline> and
            <fo:inline font-family="monospace">variant&lt;int, const int&gt;</fo:inline> have undefined
            behavior.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622167" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Conforming implementations of <fo:inline font-family="monospace">variant</fo:inline> must
            allow at least ten types as template arguments. The exact number
            of allowed arguments is exposed by the preprocessor macro
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="BOOST_VARIANT_LIMIT_TYPES">BOOST_VARIANT_LIMIT_TYPES</fo:basic-link></fo:inline>.
            (See <fo:inline font-family="monospace"><fo:basic-link internal-destination="make_variant_over">make_variant_over</fo:basic-link></fo:inline> for a
            means to specify the bounded types of a <fo:inline font-family="monospace">variant</fo:inline> by
            the elements of an <fo:basic-link external-destination="../../libs/mpl/index.html">MPL</fo:basic-link> or compatible
            Sequence, thus overcoming this limitation.)</fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block id="id622220"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">variant construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="boost.variantconstruct-copy-destruct"/><fo:inline font-family="monospace">variant</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id622237" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id622243" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id622245" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id372464-bb"/>variant();</fo:block></fo:block><fo:list-block id="id622259" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id622262" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The first bounded type of the <fo:inline font-family="monospace">variant</fo:inline> (i.e.,
            <fo:inline font-family="monospace">T1</fo:inline>) must fulfill the requirements of the
            <fo:inline font-style="italic">DefaultConstructible</fo:inline> [20.1.4]
            concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622289" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Content of <fo:inline font-family="monospace">*this</fo:inline> is the default value of the
            first bounded type (i.e, <fo:inline font-family="monospace">T1</fo:inline>).</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622311" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>May fail with any exceptions arising from the default
            constructor of <fo:inline font-family="monospace">T1</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622326" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id622328" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id508111-bb"/>variant(<fo:inline font-weight="bold">const</fo:inline> variant &amp; other);</fo:block></fo:block><fo:list-block id="id622348" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id622352" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Content of <fo:inline font-family="monospace">*this</fo:inline> is a copy of the content of
            <fo:inline font-family="monospace">other</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622373" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>May fail with any exceptions arising from the
            copy constructor of <fo:inline font-family="monospace">other</fo:inline>'s contained type.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622389" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id622391" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:wrapper id="id552173-bb"/>variant(T &amp; operand);</fo:block></fo:block><fo:list-block id="id622419" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id622422" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">T</fo:inline> must be unambiguously convertible to one of
            the bounded types (i.e., <fo:inline font-family="monospace">T1</fo:inline>, <fo:inline font-family="monospace">T2</fo:inline>,
            etc.).</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622449" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Content of <fo:inline font-family="monospace">*this</fo:inline> is the best conversion of
            <fo:inline font-family="monospace">operand</fo:inline> to one of the bounded types, as determined
            by standard overload resolution rules.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622471" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>May fail with any exceptions arising from the conversion of
            <fo:inline font-family="monospace">operand</fo:inline> to one of the bounded types.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622487" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id622489" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:wrapper id="id399284-bb"/>variant(<fo:inline font-weight="bold">const</fo:inline> T &amp; operand);</fo:block></fo:block><fo:list-block id="id622523" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id622526" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Same semantics as previous constructor, but allows
            construction from temporaries.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622535" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id622538" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U1, <fo:inline font-weight="bold">typename</fo:inline> U2, ..., <fo:inline font-weight="bold">typename</fo:inline> UN&gt; 
&#xA0;&#xA0;<fo:wrapper id="id571867-bb"/>variant(variant&lt;U1, U2, ..., UN&gt; &amp; operand);</fo:block></fo:block><fo:list-block id="id622579" provisional-distance-between-starts="14em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id622583" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-style="italic">Every</fo:inline> one of <fo:inline font-family="monospace">U1</fo:inline>,
            <fo:inline font-family="monospace">U2</fo:inline>, ..., <fo:inline font-family="monospace">UN</fo:inline> must have an unambiguous
            conversion to one of the bounded types (i.e., <fo:inline font-family="monospace">T1</fo:inline>,
            <fo:inline font-family="monospace">T2</fo:inline>, ..., <fo:inline font-family="monospace">TN</fo:inline>).</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622632" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Postconditions</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If <fo:inline font-family="monospace">variant&lt;U1, U2, ..., UN&gt;</fo:inline> is itself
            one of the bounded types, then content of <fo:inline font-family="monospace">*this</fo:inline> is a
            copy of <fo:inline font-family="monospace">operand</fo:inline>. Otherwise, content of
            <fo:inline font-family="monospace">*this</fo:inline> is the best conversion of the content of
            <fo:inline font-family="monospace">operand</fo:inline> to one of the bounded types, as determined
            by standard overload resolution rules.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622678" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If <fo:inline font-family="monospace">variant&lt;U1, U2, ..., UN&gt;</fo:inline> is itself
          one of the bounded types, then may fail with any exceptions arising
          from the copy constructor of
          <fo:inline font-family="monospace">variant&lt;U1, U2, ..., UN&gt;</fo:inline>. Otherwise, may fail
          with any exceptions arising from the conversion of the content of
          <fo:inline font-family="monospace">operand</fo:inline> to one of the bounded types.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622712" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id622714" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U1, <fo:inline font-weight="bold">typename</fo:inline> U2, ..., <fo:inline font-weight="bold">typename</fo:inline> UN&gt; 
&#xA0;&#xA0;<fo:wrapper id="id452740-bb"/>variant(<fo:inline font-weight="bold">const</fo:inline> variant&lt;U1, U2, ..., UN&gt; &amp; operand);</fo:block></fo:block><fo:list-block id="id622762" provisional-distance-between-starts="5em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id622766" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Same semantics as previous constructor, but allows
            construction from temporaries.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622775" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id622777" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id452937-bb"/>~variant();</fo:block></fo:block><fo:list-block id="id622791" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id622794" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Destroys the content of <fo:inline font-family="monospace">*this</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622809" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Will not throw.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id622816"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">variant modifiers</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id542939-bb"/><fo:inline font-family="monospace">variant</fo:inline> modifiers</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id622830" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id622836" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id622839" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id558196-bb"/>swap(variant &amp; other);</fo:block></fo:block><fo:list-block id="id622860" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id622864" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Every bounded type must fulfill the requirements of the
              <fo:basic-link internal-destination="Assignable">Assignable</fo:basic-link>
              concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622881" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Interchanges the content of <fo:inline font-family="monospace">*this</fo:inline> and
              <fo:inline font-family="monospace">other</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622902" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If the contained type of <fo:inline font-family="monospace">other</fo:inline> is the same as
              the contained type of <fo:inline font-family="monospace">*this</fo:inline>, then may fail with any
              exceptions arising from the <fo:inline font-family="monospace">swap</fo:inline> of the contents of
              <fo:inline font-family="monospace">*this</fo:inline> and <fo:inline font-family="monospace">other</fo:inline>. Otherwise, may fail
              with any exceptions arising from either of the copy constructors
              of the contained types. Also, in the event of insufficient
              memory, may fail with <fo:inline font-family="monospace">std::bad_alloc</fo:inline>
              (<fo:basic-link internal-destination="variant.design.never-empty.problem">why?</fo:basic-link>).</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id622967" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id622970" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">variant &amp; <fo:wrapper id="id506925-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> variant &amp; rhs);</fo:block></fo:block><fo:list-block id="id622999" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id623002" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Every bounded type must fulfill the requirements of the
              <fo:basic-link internal-destination="Assignable">Assignable</fo:basic-link>
              concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623020" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If the contained type of <fo:inline font-family="monospace">rhs</fo:inline> is the same as
              the contained type of <fo:inline font-family="monospace">*this</fo:inline>, then assigns the
              content of <fo:inline font-family="monospace">rhs</fo:inline> into the content of
              <fo:inline font-family="monospace">*this</fo:inline>. Otherwise, makes the content of
              <fo:inline font-family="monospace">*this</fo:inline> a copy of the content of <fo:inline font-family="monospace">rhs</fo:inline>,
              destroying the previous content of <fo:inline font-family="monospace">*this</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623076" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If the contained type of <fo:inline font-family="monospace">rhs</fo:inline> is the same as
              the contained type of <fo:inline font-family="monospace">*this</fo:inline>, then may fail with any
              exceptions arising from the assignment of the content of
              <fo:inline font-family="monospace">rhs</fo:inline> into the content <fo:inline font-family="monospace">*this</fo:inline>. Otherwise,
              may fail with any exceptions arising from the copy constructor
              of the contained type of <fo:inline font-family="monospace">rhs</fo:inline>. Also, in the event of
              insufficient memory, may fail with <fo:inline font-family="monospace">std::bad_alloc</fo:inline>
              (<fo:basic-link internal-destination="variant.design.never-empty.problem">why?</fo:basic-link>).</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623138" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id623141" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; variant &amp; <fo:wrapper id="id454843-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> T &amp; rhs);</fo:block></fo:block><fo:list-block id="id623183" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id623187" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:list-block id="id623192" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id623193" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">T</fo:inline> must be unambiguously convertible to
                one of the bounded types (i.e., <fo:inline font-family="monospace">T1</fo:inline>,
                <fo:inline font-family="monospace">T2</fo:inline>, etc.).</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623215" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Every bounded type must fulfill the requirements of the
                <fo:basic-link internal-destination="Assignable">Assignable</fo:basic-link>
                concept.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623227" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If the contained type of <fo:inline font-family="monospace">*this</fo:inline> is
              <fo:inline font-family="monospace">T</fo:inline>, then assigns <fo:inline font-family="monospace">rhs</fo:inline> into the content
              of <fo:inline font-family="monospace">*this</fo:inline>. Otherwise, makes the content of
              <fo:inline font-family="monospace">*this</fo:inline> the best conversion of <fo:inline font-family="monospace">rhs</fo:inline> to
              one of the bounded types, as determined by standard overload
              resolution rules, destroying the previous content of
              <fo:inline font-family="monospace">*this</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623284" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If the contained type of <fo:inline font-family="monospace">*this</fo:inline> is
              <fo:inline font-family="monospace">T</fo:inline>, then may fail with any exceptions arising from
              the assignment of <fo:inline font-family="monospace">rhs</fo:inline> into the content
              <fo:inline font-family="monospace">*this</fo:inline>. Otherwise, may fail with any exceptions
              arising from the conversion of <fo:inline font-family="monospace">rhs</fo:inline> to one of the
              bounded types. Also, in the event of insufficient memory, may
              fail with <fo:inline font-family="monospace">std::bad_alloc</fo:inline>
              (<fo:basic-link internal-destination="variant.design.never-empty.problem">why?</fo:basic-link>).</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id623346"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">variant queries</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id463182-bb"/><fo:inline font-family="monospace">variant</fo:inline> queries</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id623360" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id623366" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id623368" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">int</fo:inline> <fo:wrapper id="id479663-bb"/>which() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id623395" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id623399" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The zero-based index into the set of bounded types
              of the contained type of <fo:inline font-family="monospace">*this</fo:inline>. (For instance, if
              called on a <fo:inline font-family="monospace">variant&lt;int, std::string&gt;</fo:inline> object
              containing a <fo:inline font-family="monospace">std::string</fo:inline>, <fo:inline font-family="monospace">which()</fo:inline>
              would return <fo:inline font-family="monospace">1</fo:inline>.)</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623442" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Will not throw.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623449" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id623451" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id489830-bb"/>empty() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id623478" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id623482" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">false</fo:inline>: <fo:inline font-family="monospace">variant</fo:inline> always contains
              exactly one of its bounded types. (See
              <fo:basic-link internal-destination="variant.design.never-empty">the section called &#x201C;"Never-Empty" Guarantee&#x201D;</fo:basic-link>
              for more information.)</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623510" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Facilitates generic compatibility with
              <fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623527" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Will not throw.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623533" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id623536" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">const</fo:inline> std::type_info &amp; <fo:wrapper id="id443569-bb"/>type() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id623565" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id623568" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">typeid(x)</fo:inline>, where <fo:inline font-family="monospace">x</fo:inline> is the the
              content of <fo:inline font-family="monospace">*this</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623594" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Will not throw.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id623601"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">variant relational</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id401169-bb"/><fo:inline font-family="monospace">variant</fo:inline> relational</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id623615" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id623622" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id558203-bb"><fo:block id="id623629" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id266128-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> variant &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id480375-bb"/><fo:inline font-weight="bold">operator</fo:inline>==(<fo:inline font-weight="bold">const</fo:inline> U &amp; ) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id623712" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id623716" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The overload returning <fo:inline font-family="monospace">void</fo:inline> exists only to
              prohibit implicit conversion of the operator's right-hand side
              to <fo:inline font-family="monospace">variant</fo:inline>; thus, its use will (purposefully)
              result in a compile-time error.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623740" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Every bounded type of the <fo:inline font-family="monospace">variant</fo:inline> must
              fulfill the requirements of the
              <fo:basic-link internal-destination="EqualityComparable">EqualityComparable</fo:basic-link>
              concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623764" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">true</fo:inline> iff <fo:inline font-family="monospace">which() == rhs.which()</fo:inline><fo:inline font-style="italic">and</fo:inline><fo:inline font-family="monospace">content_this == content_rhs</fo:inline>, where
              <fo:inline font-family="monospace">content_this</fo:inline> is the content of <fo:inline font-family="monospace">*this</fo:inline>
              and <fo:inline font-family="monospace">content_rhs</fo:inline> is the content of
              <fo:inline font-family="monospace">rhs</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623819" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If <fo:inline font-family="monospace">which() == rhs.which()</fo:inline> then may fail with
              any exceptions arising from <fo:inline font-family="monospace">operator==(T,T)</fo:inline>, where
              <fo:inline font-family="monospace">T</fo:inline> is the contained type of
              <fo:inline font-family="monospace">*this</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623854" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id446606-bb"><fo:block id="id623861" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">bool</fo:inline> <fo:wrapper id="id498388-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> variant &amp; rhs) <fo:inline font-weight="bold">const</fo:inline>;
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id458182-bb"/><fo:inline font-weight="bold">operator</fo:inline>&lt;(<fo:inline font-weight="bold">const</fo:inline> U &amp; ) <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:list-block id="id623945" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id623949" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The overload returning <fo:inline font-family="monospace">void</fo:inline> exists only to
              prohibit implicit conversion of the operator's right-hand side
              to <fo:inline font-family="monospace">variant</fo:inline>; thus, its use will (purposefully)
              result in a compile-time error.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623973" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Every bounded type of the <fo:inline font-family="monospace">variant</fo:inline> must
              fulfill the requirements of the
              <fo:basic-link internal-destination="LessThanComparable">LessThanComparable</fo:basic-link>
              concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id623998" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If <fo:inline font-family="monospace">which() == rhs.which()</fo:inline> then:
              <fo:inline font-family="monospace">content_this &lt; content_rhs</fo:inline>, where
              <fo:inline font-family="monospace">content_this</fo:inline> is the content of <fo:inline font-family="monospace">*this</fo:inline>
              and <fo:inline font-family="monospace">content_rhs</fo:inline> is the content of <fo:inline font-family="monospace">rhs</fo:inline>.
              Otherwise: <fo:inline font-family="monospace">which() &lt; rhs.which()</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id624054" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If <fo:inline font-family="monospace">which() == rhs.which()</fo:inline> then may fail with
              any exceptions arising from <fo:inline font-family="monospace">operator&lt;(T,T)</fo:inline>,
              where <fo:inline font-family="monospace">T</fo:inline> is the contained type of
              <fo:inline font-family="monospace">*this</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id503912"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template swap</fo:block></fo:block><fo:block space-after="1em">Function template swap <fo:inline font-family="serif">--</fo:inline> </fo:block><fo:block>boost::swap</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id624107"><fo:block/><fo:block id="id624108" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> swap(<fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; &amp; lhs, <fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; &amp; rhs);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id624165"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id624169" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id624172" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Swaps <fo:inline font-family="monospace">lhs</fo:inline> with <fo:inline font-family="monospace">rhs</fo:inline> by application
          of <fo:inline font-family="monospace"><fo:basic-link internal-destination="id558196-bb">variant::swap</fo:basic-link></fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id624205" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>May fail with any exception arising from
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="id558196-bb">variant::swap</fo:basic-link></fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id227095"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template operator&lt;&lt;</fo:block></fo:block><fo:block space-after="1em">Function template operator&lt;&lt; <fo:inline font-family="serif">--</fo:inline> Provides streaming output for <fo:inline font-family="monospace">variant</fo:inline> types.</fo:block><fo:block>boost::operator&lt;&lt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id624252"><fo:block/><fo:block id="id624253" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ElemType, <fo:inline font-weight="bold">typename</fo:inline> Traits, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> TN&gt; 
&#xA0;&#xA0;std::basic_ostream&lt;ElemType,Traits&gt; &amp; 
&#xA0;&#xA0;<fo:inline font-weight="bold">operator</fo:inline>&lt;&lt;(std::basic_ostream&lt;ElemType,Traits&gt; &amp; out, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; &amp; rhs);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id624327"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id624331" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id624334" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Every bounded type of the <fo:inline font-family="monospace">variant</fo:inline> must
          fulfill the requirements of the
          <fo:basic-link internal-destination="variant.concepts.output-streamable"><fo:inline font-style="italic">OutputStreamable</fo:inline></fo:basic-link>
          concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id624361" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Calls <fo:inline font-family="monospace">out &lt;&lt; x</fo:inline>, where <fo:inline font-family="monospace">x</fo:inline> is
          the content of <fo:inline font-family="monospace">rhs</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="make_variant_over"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template make_variant_over</fo:block></fo:block><fo:block space-after="1em">Class template make_variant_over <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Exposes a <fo:inline font-family="monospace">variant</fo:inline> whose bounded types are the
          elements of the given type sequence.</fo:block></fo:block><fo:block>boost::make_variant_over</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id624417"><fo:block/><fo:block id="id624418" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Sequence&gt; 
<fo:inline font-weight="bold">class</fo:inline> make_variant_over {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> variant&lt; <fo:inline font-style="italic">unspecified</fo:inline> &gt; type;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id624464"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">type</fo:inline> has behavior equivalent in every respect to
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt; Sequence[0], Sequence[1], ... &gt;</fo:inline>
          (where <fo:inline font-family="monospace">Sequence[<fo:inline font-style="italic">i</fo:inline>]</fo:inline> denotes the
          <fo:inline font-style="italic">i</fo:inline>-th element of <fo:inline font-family="monospace">Sequence</fo:inline>), except
          that no upper limit is imposed on the number of types.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Notes</fo:inline>:</fo:block><fo:list-block id="id624521" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id624522" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">Sequence</fo:inline> must meet the requirements of
            <fo:basic-link external-destination="../../libs/mpl/index.html">MPL</fo:basic-link>'s <fo:inline font-style="italic">Sequence</fo:inline>
            concept.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id624542" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Due to standard conformance problems in several compilers,
            <fo:inline font-family="monospace">make_variant_over</fo:inline> may not be supported on your
            compiler. See
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="id544182">BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</fo:basic-link></fo:inline>
            for more information.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id267452"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/variant/recursive_variant.hpp">boost/variant/recursive_variant.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id624582" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">unspecified</fo:inline> recursive_variant_;

&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2 = <fo:inline font-style="italic">unspecified</fo:inline>, ..., 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> TN = <fo:inline font-style="italic">unspecified</fo:inline>&gt; 
  &#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="make_recursive_variant">make_recursive_variant</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Sequence&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="id276892">make_recursive_variant_over</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="make_recursive_variant"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template make_recursive_variant</fo:block></fo:block><fo:block space-after="1em">Class template make_recursive_variant <fo:inline font-family="serif">--</fo:inline> Simplifies declaration of recursive <fo:inline font-family="monospace">variant</fo:inline> types.</fo:block><fo:block>boost::make_recursive_variant</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id624710"><fo:block/><fo:block id="id624711" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2 = <fo:inline font-style="italic">unspecified</fo:inline>, ..., 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> TN = <fo:inline font-style="italic">unspecified</fo:inline>&gt; 
<fo:inline font-weight="bold">class</fo:inline> make_recursive_variant {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:basic-link internal-destination="boost.variant">boost::variant</fo:basic-link>&lt; <fo:inline font-style="italic">unspecified</fo:inline> &gt; type;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id624787"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">type</fo:inline> has behavior equivalent in every respect to
          some <fo:inline font-family="monospace">variant&lt; U1, U2, ..., UN &gt;</fo:inline>, where each type
          <fo:inline font-family="monospace">U<fo:inline font-style="italic">i</fo:inline></fo:inline> is the result of the
          corresponding type <fo:inline font-family="monospace">T<fo:inline font-style="italic">i</fo:inline></fo:inline> undergone a
          transformation function. The following pseudo-code specifies the
          behavior of this transformation (call it <fo:inline font-family="monospace">substitute</fo:inline>):

          <fo:list-block id="id624835" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id624836" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>If <fo:inline font-family="monospace">T<fo:inline font-style="italic">i</fo:inline></fo:inline> is
              <fo:inline font-family="monospace">boost::recursive_variant_</fo:inline> then:
              <fo:inline font-family="monospace">variant&lt; U1, U2, ..., UN &gt;</fo:inline>;</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id624862" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Else if <fo:inline font-family="monospace">T<fo:inline font-style="italic">i</fo:inline></fo:inline> is of the
              form <fo:inline font-family="monospace">X *</fo:inline> then:
              <fo:inline font-family="monospace">substitute(X) *</fo:inline>;</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id624887" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Else if <fo:inline font-family="monospace">T<fo:inline font-style="italic">i</fo:inline></fo:inline> is of the
              form <fo:inline font-family="monospace">X &amp;</fo:inline> then:
              <fo:inline font-family="monospace">substitute(X) &amp;</fo:inline>;</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id624912" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Else if <fo:inline font-family="monospace">T<fo:inline font-style="italic">i</fo:inline></fo:inline> is of the
              form <fo:inline font-family="monospace">R (*)( X1, X2, ..., XN )</fo:inline> then:
              <fo:inline font-family="monospace">substitute(R) (*)( substitute(X1), substitute(X2), ..., substitute(XN) )</fo:inline>;</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id624939" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Else if <fo:inline font-family="monospace">T<fo:inline font-style="italic">i</fo:inline></fo:inline> is of the
              form <fo:inline font-family="monospace">F &lt; X1, X2, ..., XN &gt;</fo:inline> then:
              <fo:inline font-family="monospace">F&lt; substitute(X1), substitute(X2), ..., substitute(XN) &gt;</fo:inline>;</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id624966" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Else: <fo:inline font-family="monospace">T<fo:inline font-style="italic">i</fo:inline></fo:inline>.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note that cv-qualifiers are preserved and that the actual
          process is generally a bit more complicated. However, the above does
          convey the essential idea as well as describe the extent of the
          substititions.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Use of <fo:inline font-family="monospace">make_recursive_variant</fo:inline> is demonstrated in
          <fo:basic-link internal-destination="variant.tutorial.recursive.recursive-variant">the section called &#x201C;Recursive types with <fo:inline font-family="monospace">make_recursive_variant</fo:inline>&#x201D;</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Portability</fo:inline>: Due to standard
          conformance issues in several compilers,
          <fo:inline font-family="monospace">make_recursive_variant</fo:inline> is not universally supported. On
          these compilers the library indicates its lack of support via the
          definition of the preprocessor symbol
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="id413934">BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT</fo:basic-link></fo:inline>.</fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="id276892"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template make_recursive_variant_over</fo:block></fo:block><fo:block space-after="1em">Class template make_recursive_variant_over <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Exposes a recursive <fo:inline font-family="monospace">variant</fo:inline> whose bounded types
          are the elements of the given type sequence.</fo:block></fo:block><fo:block>boost::make_recursive_variant_over</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id625061"><fo:block/><fo:block id="id625062" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Sequence&gt; 
<fo:inline font-weight="bold">class</fo:inline> make_recursive_variant_over {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> variant&lt; <fo:inline font-style="italic">unspecified</fo:inline> &gt; type;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id625108"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">type</fo:inline> has behavior equivalent in every respect to
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="make_recursive_variant">make_recursive_variant</fo:basic-link>&lt; Sequence[0], Sequence[1], ... &gt;::type</fo:inline>
          (where <fo:inline font-family="monospace">Sequence[<fo:inline font-style="italic">i</fo:inline>]</fo:inline> denotes the
          <fo:inline font-style="italic">i</fo:inline>-th element of <fo:inline font-family="monospace">Sequence</fo:inline>), except
          that no upper limit is imposed on the number of types.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Notes</fo:inline>:</fo:block><fo:list-block id="id625166" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id625167" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:inline font-family="monospace">Sequence</fo:inline> must meet the requirements of
            <fo:basic-link external-destination="../../libs/mpl/index.html">MPL</fo:basic-link>'s <fo:inline font-style="italic">Sequence</fo:inline>
            concept.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id625186" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Due to standard conformance problems in several compilers,
            <fo:inline font-family="monospace">make_recursive_variant_over</fo:inline> may not be supported on
            your compiler. See
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="id544182">BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT</fo:basic-link></fo:inline>
            for more information.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id352292"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/variant/recursive_wrapper.hpp">boost/variant/recursive_wrapper.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id625227" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="recursive_wrapper">recursive_wrapper</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="is_recursive_wrapper">is_recursive_wrapper</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="unwrap_recursive_wrapper">unwrap_recursive_wrapper</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="recursive_wrapper"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template recursive_wrapper</fo:block></fo:block><fo:block space-after="1em">Class template recursive_wrapper <fo:inline font-family="serif">--</fo:inline> Solves circular dependencies, enabling recursive types.</fo:block><fo:block>boost::recursive_wrapper</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id625347"><fo:block/><fo:block id="id625348" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; 
<fo:inline font-weight="bold">class</fo:inline> recursive_wrapper {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> T type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="recursive_wrapperconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:basic-link internal-destination="id419143-bb">recursive_wrapper</fo:basic-link>();
&#xA0;&#xA0;<fo:basic-link internal-destination="id455143-bb">recursive_wrapper</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> recursive_wrapper &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id521823-bb">recursive_wrapper</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> T &amp;);
&#xA0;&#xA0;<fo:basic-link internal-destination="id267948-bb">~recursive_wrapper</fo:basic-link>();

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id440910-bb">modifiers</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id337749-bb">swap</fo:basic-link>(recursive_wrapper &amp;);
&#xA0;&#xA0;recursive_wrapper &amp; <fo:basic-link internal-destination="id523522-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> recursive_wrapper &amp;);
&#xA0;&#xA0;recursive_wrapper &amp; <fo:basic-link internal-destination="id325835-bb"><fo:inline font-weight="bold">operator</fo:inline>=</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> T &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id432813-bb">queries</fo:basic-link></fo:inline>
&#xA0;&#xA0;T &amp; <fo:basic-link internal-destination="id232939-bb">get</fo:basic-link>();
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> T &amp; <fo:basic-link internal-destination="id288118-bb">get</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
&#xA0;&#xA0;T * <fo:basic-link internal-destination="id280820-bb">get_pointer</fo:basic-link>();
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> T * <fo:basic-link internal-destination="id339517-bb">get_pointer</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id625625"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">recursive_wrapper</fo:inline> class template has an
          interface similar to a simple value container, but its content is
          allocated dynamically. This allows <fo:inline font-family="monospace">recursive_wrapper</fo:inline> to
          hold types <fo:inline font-family="monospace">T</fo:inline> whose member data leads to a circular
          dependency (e.g., a data member of <fo:inline font-family="monospace">T</fo:inline> has a data member
          of type <fo:inline font-family="monospace">T</fo:inline>).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The application of <fo:inline font-family="monospace">recursive_wrapper</fo:inline> is easiest
          understood in context. See
          <fo:basic-link internal-destination="variant.tutorial.recursive.recursive-wrapper">the section called &#x201C;Recursive types with <fo:inline font-family="monospace">recursive_wrapper</fo:inline>&#x201D;</fo:basic-link> for a
          demonstration of a common use of the class template.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Notes</fo:inline>:</fo:block><fo:list-block id="id625696" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id625697" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Any type specified as the template argument to
            <fo:inline font-family="monospace">recursive_wrapper</fo:inline> must be capable of construction via
            <fo:inline font-family="monospace">operator new</fo:inline>. Thus, for instance, references are not
            supported.</fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block id="id625716"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">recursive_wrapper construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="recursive_wrapperconstruct-copy-destruct"/><fo:inline font-family="monospace">recursive_wrapper</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id625733" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id625739" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id625741" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id419143-bb"/>recursive_wrapper();</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Initializes <fo:inline font-family="monospace">*this</fo:inline> by default construction of
            <fo:inline font-family="monospace">T</fo:inline>.</fo:block><fo:list-block id="id625771" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id625774" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">T</fo:inline> must fulfill the requirements of the
            <fo:inline font-style="italic">DefaultConstructible</fo:inline> [20.1.4]
            concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id625793" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>May fail with any exceptions arising from the default
            constructor of <fo:inline font-family="monospace">T</fo:inline> or, in the event of
            insufficient memory, with <fo:inline font-family="monospace">std::bad_alloc</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id625815" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id625818" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id455143-bb"/>recursive_wrapper(<fo:inline font-weight="bold">const</fo:inline> recursive_wrapper &amp; other);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Copies the content of <fo:inline font-family="monospace">other</fo:inline> into
            <fo:inline font-family="monospace">*this</fo:inline>.</fo:block><fo:list-block id="id625854" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id625858" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>May fail with any exceptions arising from the
            copy constructor of <fo:inline font-family="monospace">T</fo:inline> or, in the event of
            insufficient memory, with <fo:inline font-family="monospace">std::bad_alloc</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id625880" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id625883" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id521823-bb"/>recursive_wrapper(<fo:inline font-weight="bold">const</fo:inline> T &amp; operand);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Copies <fo:inline font-family="monospace">operand</fo:inline> into
            <fo:inline font-family="monospace">*this</fo:inline>.</fo:block><fo:list-block id="id625919" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id625922" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>May fail with any exceptions arising from the
            copy constructor of <fo:inline font-family="monospace">T</fo:inline> or, in the event of
            insufficient memory, with <fo:inline font-family="monospace">std::bad_alloc</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id625945" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id625947" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:wrapper id="id267948-bb"/>~recursive_wrapper();</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Deletes the content of <fo:inline font-family="monospace">*this</fo:inline>.</fo:block><fo:list-block id="id625970" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id625974" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Will not throw.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id625980"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">recursive_wrapper modifiers</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id440910-bb"/><fo:inline font-family="monospace">recursive_wrapper</fo:inline> modifiers</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id625995" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id626001" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id626004" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id337749-bb"/>swap(recursive_wrapper &amp; other);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Exchanges contents of <fo:inline font-family="monospace">*this</fo:inline> and
              <fo:inline font-family="monospace">other</fo:inline>.</fo:block><fo:list-block id="id626042" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id626045" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Will not throw.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id626051" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id626054" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">recursive_wrapper &amp; <fo:wrapper id="id523522-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> recursive_wrapper &amp; rhs);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Assigns the content of <fo:inline font-family="monospace">rhs</fo:inline> to the content of
              <fo:inline font-family="monospace">*this</fo:inline>.</fo:block><fo:list-block id="id626100" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id626103" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">T</fo:inline> must fulfill the requirements of
            the <fo:basic-link internal-destination="Assignable">Assignable</fo:basic-link>
            concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id626125" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>May fail with any exceptions arising from the assignment
              operator of <fo:inline font-family="monospace">T</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id626140" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id626143" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">recursive_wrapper &amp; <fo:wrapper id="id325835-bb"/><fo:inline font-weight="bold">operator</fo:inline>=(<fo:inline font-weight="bold">const</fo:inline> T &amp; rhs);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Assigns <fo:inline font-family="monospace">rhs</fo:inline> into the content of
              <fo:inline font-family="monospace">*this</fo:inline>.</fo:block><fo:list-block id="id626188" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id626192" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-family="monospace">T</fo:inline> must fulfill the requirements of the
              <fo:basic-link internal-destination="Assignable">Assignable</fo:basic-link>
              concept.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id626214" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>May fail with any exceptions arising from the assignment
              operator of <fo:inline font-family="monospace">T</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id626229"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">recursive_wrapper queries</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id432813-bb"/><fo:inline font-family="monospace">recursive_wrapper</fo:inline> queries</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id626244" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id626250" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id457164-bb"><fo:block id="id626257" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">T &amp; <fo:wrapper id="id232939-bb"/>get();
<fo:inline font-weight="bold">const</fo:inline> T &amp; <fo:wrapper id="id288118-bb"/>get() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns a reference to the content of
              <fo:inline font-family="monospace">*this</fo:inline>.</fo:block><fo:list-block id="id626306" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id626309" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Will not throw.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id626316" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id508770-bb"><fo:block id="id626323" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">T * <fo:wrapper id="id280820-bb"/>get_pointer();
<fo:inline font-weight="bold">const</fo:inline> T * <fo:wrapper id="id339517-bb"/>get_pointer() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns a pointer to the content of
              <fo:inline font-family="monospace">*this</fo:inline>.</fo:block><fo:list-block id="id626371" provisional-distance-between-starts="6em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id626374" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Will not throw.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="is_recursive_wrapper"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template is_recursive_wrapper</fo:block></fo:block><fo:block space-after="1em">Class template is_recursive_wrapper <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Determines whether the specified type is a specialization of
          <fo:inline font-family="monospace">recursive_wrapper</fo:inline>.</fo:block></fo:block><fo:block>boost::is_recursive_wrapper</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id626409"><fo:block/><fo:block id="id626411" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; 
<fo:inline font-weight="bold">class</fo:inline> is_recursive_wrapper {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">unspecified</fo:inline> type;

&#xA0;&#xA0;<fo:inline font-style="italic">// static constants</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">static</fo:inline> <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">bool</fo:inline> value = unspecified;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id626480"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Value is true iff <fo:inline font-family="monospace">T</fo:inline> is a specialization of
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="recursive_wrapper">recursive_wrapper</fo:basic-link></fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Note</fo:inline>:
          <fo:inline font-family="monospace">is_recursive_wrapper</fo:inline> is a model of
          <fo:basic-link external-destination="../../libs/mpl/index.html">MPL</fo:basic-link>'s
          <fo:inline font-style="italic">IntegralConstant</fo:inline> concept.</fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="unwrap_recursive_wrapper"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template unwrap_recursive_wrapper</fo:block></fo:block><fo:block space-after="1em">Class template unwrap_recursive_wrapper <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Unwraps the specified argument if given a specialization of
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="recursive_wrapper">recursive_wrapper</fo:basic-link></fo:inline>.</fo:block></fo:block><fo:block>boost::unwrap_recursive_wrapper</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id626566"><fo:block/><fo:block id="id626567" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T&gt; 
<fo:inline font-weight="bold">class</fo:inline> unwrap_recursive_wrapper {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-style="italic">unspecified</fo:inline> type;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id626613"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">type</fo:inline> is equivalent to <fo:inline font-family="monospace">T::type</fo:inline> if
          <fo:inline font-family="monospace">T</fo:inline> is a specialization of
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="recursive_wrapper">recursive_wrapper</fo:basic-link></fo:inline>. Otherwise,
          <fo:inline font-family="monospace">type</fo:inline> is equivalent to <fo:inline font-family="monospace">T</fo:inline>.</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id388564"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/variant/apply_visitor.hpp">boost/variant/apply_visitor.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id626680" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Visitor&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="apply_visitor_delayed_t">apply_visitor_delayed_t</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Visitor, <fo:inline font-weight="bold">typename</fo:inline> Variant&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Visitor::result_type <fo:basic-link internal-destination="apply_visitor">apply_visitor</fo:basic-link>(Visitor &amp;, Variant &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Visitor, <fo:inline font-weight="bold">typename</fo:inline> Variant&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Visitor::result_type <fo:basic-link internal-destination="apply_visitor">apply_visitor</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> Visitor &amp;, Variant &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> BinaryVisitor, <fo:inline font-weight="bold">typename</fo:inline> Variant1, <fo:inline font-weight="bold">typename</fo:inline> Variant2&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> BinaryVisitor::result_type 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="apply_visitor">apply_visitor</fo:basic-link>(BinaryVisitor &amp;, Variant1 &amp;, Variant2 &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> BinaryVisitor, <fo:inline font-weight="bold">typename</fo:inline> Variant1, <fo:inline font-weight="bold">typename</fo:inline> Variant2&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> BinaryVisitor::result_type 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="apply_visitor">apply_visitor</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> BinaryVisitor &amp;, Variant1 &amp;, Variant2 &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Visitor&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:basic-link internal-destination="apply_visitor_delayed_t">apply_visitor_delayed_t</fo:basic-link>&lt;Visitor&gt; <fo:basic-link internal-destination="apply_visitor">apply_visitor</fo:basic-link>(Visitor &amp;);
}</fo:block><fo:block break-before="page"><fo:block id="apply_visitor_delayed_t"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template apply_visitor_delayed_t</fo:block></fo:block><fo:block space-after="1em">Class template apply_visitor_delayed_t <fo:inline font-family="serif">--</fo:inline> Adapts a visitor for use as a function object.</fo:block><fo:block>boost::apply_visitor_delayed_t</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id626958"><fo:block/><fo:block id="id626960" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Visitor&gt; 
<fo:inline font-weight="bold">class</fo:inline> apply_visitor_delayed_t {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> <fo:inline font-weight="bold">typename</fo:inline> Visitor::result_type result_type;

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="apply_visitor_delayed_tconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">explicit</fo:inline> <fo:basic-link internal-destination="id232670-bb">apply_visitor_delayed_t</fo:basic-link>(Visitor &amp;);

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id232252-bb">function object interface</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Variant&gt; result_type <fo:basic-link internal-destination="id238208-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(Variant &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Variant1, <fo:inline font-weight="bold">typename</fo:inline> Variant2&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;result_type <fo:basic-link internal-destination="id552353-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(Variant1 &amp;, Variant2 &amp;);
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id627123"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Adapts the function given at construction for use as a
          function object. This is useful, for example, when one needs to
          operate on each element of a sequence of variant objects using a
          standard library algorithm such as
          <fo:inline font-family="monospace">std::for_each</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">See the "visitor-only" form of
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="apply_visitor">apply_visitor</fo:basic-link></fo:inline> for a simple
          way to create <fo:inline font-family="monospace">apply_visitor_delayed_t</fo:inline> objects.</fo:block><fo:block id="id627163"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">apply_visitor_delayed_t construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="apply_visitor_delayed_tconstruct-copy-destruct"/><fo:inline font-family="monospace">apply_visitor_delayed_t</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id627180" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id627186" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id627188" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">explicit</fo:inline> <fo:wrapper id="id232670-bb"/>apply_visitor_delayed_t(Visitor &amp; visitor);</fo:block></fo:block><fo:list-block id="id627210" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id627213" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Constructs the function object with the given
            visitor.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id627222"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">apply_visitor_delayed_t function object interface</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id232252-bb"/><fo:inline font-family="monospace">apply_visitor_delayed_t</fo:inline> function object interface</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id627237" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id627242" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id524917-bb"><fo:block id="id627250" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Variant&gt; result_type <fo:wrapper id="id238208-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(Variant &amp; operand);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Variant1, <fo:inline font-weight="bold">typename</fo:inline> Variant2&gt; 
&#xA0;&#xA0;result_type <fo:wrapper id="id552353-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(Variant1 &amp; operand1, Variant2 &amp; operand2);</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Invokes
            <fo:inline font-family="monospace"><fo:basic-link internal-destination="apply_visitor">apply_visitor</fo:basic-link></fo:inline> on the
            stored visitor using the given operands.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="apply_visitor"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function apply_visitor</fo:block></fo:block><fo:block space-after="1em">Function apply_visitor <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Allows compile-time checked type-safe application of the
        given visitor to the content of the given variant, ensuring that all
        types are handled by the visitor.</fo:block></fo:block><fo:block>boost::apply_visitor</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id627363"><fo:block/><fo:block id="id627364" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Visitor, <fo:inline font-weight="bold">typename</fo:inline> Variant&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Visitor::result_type 
&#xA0;&#xA0;apply_visitor(Visitor &amp; visitor, Variant &amp; operand);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Visitor, <fo:inline font-weight="bold">typename</fo:inline> Variant&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> Visitor::result_type 
&#xA0;&#xA0;apply_visitor(<fo:inline font-weight="bold">const</fo:inline> Visitor &amp; visitor, Variant &amp; operand);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> BinaryVisitor, <fo:inline font-weight="bold">typename</fo:inline> Variant1, <fo:inline font-weight="bold">typename</fo:inline> Variant2&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> BinaryVisitor::result_type 
&#xA0;&#xA0;apply_visitor(BinaryVisitor &amp; visitor, Variant1 &amp; operand1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;Variant2 &amp; operand2);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> BinaryVisitor, <fo:inline font-weight="bold">typename</fo:inline> Variant1, <fo:inline font-weight="bold">typename</fo:inline> Variant2&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">typename</fo:inline> BinaryVisitor::result_type 
&#xA0;&#xA0;apply_visitor(<fo:inline font-weight="bold">const</fo:inline> BinaryVisitor &amp; visitor, Variant1 &amp; operand1, 
&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;Variant2 &amp; operand2);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> Visitor&gt; 
&#xA0;&#xA0;<fo:basic-link internal-destination="apply_visitor_delayed_t">apply_visitor_delayed_t</fo:basic-link>&lt;Visitor&gt; apply_visitor(Visitor &amp; visitor);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id627549"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The behavior of <fo:inline font-family="monospace">apply_visitor</fo:inline> is dependent on
        the number of arguments on which it operates (i.e., other than the
        visitor). The function behaves as follows:

          <fo:list-block id="id627566" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id627567" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Overloads accepting one operand invoke the unary function
              call operator of the given visitor on the content of the given
              <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline> operand.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id627584" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Overloads accepting two operands invoke the binary
              function call operator of the given visitor on the content of
              the given <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline>
              operands.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id627601" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>The overload accepting only a visitor returns a
              <fo:basic-link internal-destination="apply_visitor_delayed_t">generic function object</fo:basic-link>
              that accepts either one or two arguments and invokes
              <fo:inline font-family="monospace"><fo:basic-link internal-destination="apply_visitor">apply_visitor</fo:basic-link></fo:inline> using
              these arguments and <fo:inline font-family="monospace">visitor</fo:inline>, thus behaving as
              specified above. (This behavior is particularly useful, for
              example, when one needs to operate on each element of a sequence
              of variant objects using a standard library
              algorithm.)</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:list-block id="id627637" provisional-distance-between-starts="8em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id627641" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The overloads acccepting operands return the result of
        applying the given visitor to the content of the given operands.
        The overload accepting only a visitor return a function object, thus
        delaying application of the visitor to any operands.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id627653" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Requires</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The given visitor must fulfill the
        <fo:basic-link internal-destination="variant.concepts.static-visitor"><fo:inline font-style="italic">StaticVisitor</fo:inline></fo:basic-link>
        concept requirements with respect to each of the bounded types of the
        given <fo:inline font-family="monospace">variant</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id627680" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The overloads accepting operands throw only if the given
        visitor throws when applied. The overload accepting only a visitor
        will not throw. (Note, however, that the returned
        <fo:basic-link internal-destination="apply_visitor_delayed_t">function object</fo:basic-link>
        may throw when invoked.)</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id446657"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/variant/get.hpp">boost/variant/get.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id627715" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="bad_get">bad_get</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;U * <fo:basic-link internal-destination="get">get</fo:basic-link>(<fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; *);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> U * <fo:basic-link internal-destination="get">get</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; *);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;U &amp; <fo:basic-link internal-destination="get">get</fo:basic-link>(<fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; &amp;);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN&gt; 
&#xA0;&#xA0;&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> U &amp; <fo:basic-link internal-destination="get">get</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; &amp;);
}</fo:block><fo:block break-before="page"><fo:block id="bad_get"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class bad_get</fo:block></fo:block><fo:block space-after="1em">Class bad_get <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The exception thrown in	the	event	of a failed application of
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="get">boost::get</fo:basic-link></fo:inline> on	the given
        operand value.</fo:block></fo:block><fo:block>boost::bad_get</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id628007"><fo:block/><fo:block id="id628008" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> bad_get : <fo:inline font-weight="bold">public</fo:inline> std::exception {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">const</fo:inline>	<fo:inline font-weight="bold">char</fo:inline> * <fo:basic-link internal-destination="id480368-bb">what</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id628071"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id628076" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">const</fo:inline>	<fo:inline font-weight="bold">char</fo:inline> * <fo:wrapper id="id480368-bb"/>what() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="get"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function get</fo:block></fo:block><fo:block space-after="1em">Function get <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Retrieves a value of a specified type from a given
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline>.</fo:block></fo:block><fo:block>boost::get</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id628148"><fo:block/><fo:block id="id628149" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN&gt; 
&#xA0;&#xA0;U * get(<fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; * operand);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> U * get(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; * operand);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN&gt; 
&#xA0;&#xA0;U &amp; get(<fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; &amp; operand);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U, <fo:inline font-weight="bold">typename</fo:inline> T1, <fo:inline font-weight="bold">typename</fo:inline> T2, ..., <fo:inline font-weight="bold">typename</fo:inline> TN&gt; 
&#xA0;&#xA0;<fo:inline font-weight="bold">const</fo:inline> U &amp; get(<fo:inline font-weight="bold">const</fo:inline> <fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1, T2, ..., TN&gt; &amp; operand);</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id628362"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">get</fo:inline> function allows run-time checked,
          type-safe retrieval of the content of the given
          <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline>. The function succeeds
          only if the content is of the specified type <fo:inline font-family="monospace">U</fo:inline>, with
          failure indicated as described below.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Warning</fo:inline>: After either
          <fo:inline font-family="monospace">operand</fo:inline> or its content is destroyed (e.g., when the
          given <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline> is assigned a
          value of different type), the returned reference is invalidated.
          Thus, significant care and caution must be extended when handling
          the returned reference.</fo:block><fo:list-block id="id628427" provisional-distance-between-starts="9em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id628431" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Notes</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>As part of its guarantee of type-safety, <fo:inline font-family="monospace">get</fo:inline>
        enforces <fo:inline font-family="monospace">const</fo:inline>-correctness. Thus, the specified type
        <fo:inline font-family="monospace">U</fo:inline> must be <fo:inline font-family="monospace">const</fo:inline>-qualified whenever
        <fo:inline font-family="monospace">operand</fo:inline> or its content is likewise
        <fo:inline font-family="monospace">const</fo:inline>-qualified. The converse, however, is not required:
        that is, the specified type <fo:inline font-family="monospace">U</fo:inline> may be
        <fo:inline font-family="monospace">const</fo:inline>-qualified even when <fo:inline font-family="monospace">operand</fo:inline> and its
        content are not.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id628501" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If passed a pointer, <fo:inline font-family="monospace">get</fo:inline> returns a pointer to
        the value content if it is of the specified type <fo:inline font-family="monospace">U</fo:inline>;
        otherwise, a null pointer is returned. If passed a reference,
        <fo:inline font-family="monospace">get</fo:inline> returns a reference to the value content if it is of
        the specified type <fo:inline font-family="monospace">U</fo:inline>; otherwise, an exception is thrown
        (see below).</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id628539" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Overloads taking a
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline> pointer will not
        throw; the overloads taking a
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link></fo:inline> reference throw
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="bad_get">bad_get</fo:basic-link></fo:inline> if the content is not of
        the specified type <fo:inline font-family="monospace">U</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id628590" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Rationale</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>While visitation via
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="apply_visitor">apply_visitor</fo:basic-link></fo:inline>
        is generally prefered due to its greater safety, <fo:inline font-family="monospace">get</fo:inline> may
        may be more convenient in some cases due to its straightforward
        usage.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block id="id503352"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/variant/bad_visit.hpp">boost/variant/bad_visit.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id628635" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="bad_visit">bad_visit</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="bad_visit"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class bad_visit</fo:block></fo:block><fo:block space-after="1em">Class bad_visit <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The exception thrown in the event of a visitor
          unable to handle the visited value.</fo:block></fo:block><fo:block>boost::bad_visit</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id628683"><fo:block/><fo:block id="id628684" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">class</fo:inline> bad_visit : <fo:inline font-weight="bold">public</fo:inline> std::exception {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:basic-link internal-destination="id356415-bb">what</fo:basic-link>() <fo:inline font-weight="bold">const</fo:inline>;
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id628746"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:block id="id628751" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">virtual</fo:inline> <fo:inline font-weight="bold">const</fo:inline> <fo:inline font-weight="bold">char</fo:inline> * <fo:wrapper id="id356415-bb"/>what() <fo:inline font-weight="bold">const</fo:inline>;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id382199"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/variant/static_visitor.hpp">boost/variant/static_visitor.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id628807" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ResultType&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="static_visitor">static_visitor</fo:basic-link>;
}</fo:block><fo:block break-before="page"><fo:block id="static_visitor"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template static_visitor</fo:block></fo:block><fo:block space-after="1em">Class template static_visitor <fo:inline font-family="serif">--</fo:inline> Convenient base type for static visitors.</fo:block><fo:block>boost::static_visitor</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id628865"><fo:block/><fo:block id="id628866" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> ResultType&gt; 
<fo:inline font-weight="bold">class</fo:inline> static_visitor {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// types</fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">typedef</fo:inline> ResultType result_type;  <fo:inline font-style="italic">// Exposes result_type member as required by StaticVisitor concept.</fo:inline>
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id628913"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Denotes the intent of the deriving class as meeting the
          requirements of a static visitor of some type. Also exposes the
          inner type <fo:inline font-family="monospace">result_type</fo:inline> as required by the
          <fo:basic-link internal-destination="variant.concepts.static-visitor"><fo:inline font-style="italic">StaticVisitor</fo:inline></fo:basic-link>
          concept.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Notes</fo:inline>:
          <fo:inline font-family="monospace">static_visitor</fo:inline> is intended for use as a base type only
          and is therefore noninstantiable.</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id500650"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Header &lt;<fo:basic-link external-destination="../../boost/variant/visitor_ptr.hpp">boost/variant/visitor_ptr.hpp</fo:basic-link>&gt;</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id628971" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">namespace</fo:inline> boost {
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, <fo:inline font-weight="bold">typename</fo:inline> R&gt; <fo:inline font-weight="bold">class</fo:inline> <fo:basic-link internal-destination="visitor_ptr_t">visitor_ptr_t</fo:basic-link>;
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> R, <fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:basic-link internal-destination="visitor_ptr_t">visitor_ptr_t</fo:basic-link>&lt;T,R&gt; <fo:basic-link internal-destination="visitor_ptr">visitor_ptr</fo:basic-link>(R (*)(T));
}</fo:block><fo:block break-before="page"><fo:block id="visitor_ptr_t"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Class template visitor_ptr_t</fo:block></fo:block><fo:block space-after="1em">Class template visitor_ptr_t <fo:inline font-family="serif">--</fo:inline> Adapts a function pointer for use as a static visitor.</fo:block><fo:block>boost::visitor_ptr_t</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id629076"><fo:block/><fo:block id="id629078" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> T, <fo:inline font-weight="bold">typename</fo:inline> R&gt; 
<fo:inline font-weight="bold">class</fo:inline> visitor_ptr_t : <fo:inline font-weight="bold">public</fo:inline> <fo:basic-link internal-destination="static_visitor">static_visitor</fo:basic-link>&lt;R&gt; {
<fo:inline font-weight="bold">public</fo:inline>:
&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="visitor_ptr_tconstruct-copy-destruct">construct/copy/destruct</fo:basic-link></fo:inline>
&#xA0;&#xA0;<fo:inline font-weight="bold">explicit</fo:inline> <fo:basic-link internal-destination="id405420-bb">visitor_ptr_t</fo:basic-link>(R (*)(T));

&#xA0;&#xA0;<fo:inline font-style="italic">// <fo:basic-link internal-destination="id481416-bb">static visitor interfaces</fo:basic-link></fo:inline>
&#xA0;&#xA0;R <fo:basic-link internal-destination="id548238-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(<fo:inline font-style="italic">unspecified-forwarding-type</fo:inline>);
&#xA0;&#xA0;<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:basic-link internal-destination="id416481-bb"><fo:inline font-weight="bold">operator</fo:inline>()</fo:basic-link>(<fo:inline font-weight="bold">const</fo:inline> U&amp;);
};</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id629236"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Adapts the function given at construction for use as a
        <fo:basic-link internal-destination="variant.concepts.static-visitor">static visitor</fo:basic-link>
        of type <fo:inline font-family="monospace">T</fo:inline> with result type <fo:inline font-family="monospace">R</fo:inline>.</fo:block><fo:block id="id629266"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">visitor_ptr_t construct/copy/destruct</fo:marker><fo:block font-size="10pt"><fo:wrapper id="visitor_ptr_tconstruct-copy-destruct"/><fo:inline font-family="monospace">visitor_ptr_t</fo:inline> construct/copy/destruct</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id629281" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id629287" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:block id="id629290" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-weight="bold">explicit</fo:inline> <fo:wrapper id="id405420-bb"/>visitor_ptr_t(R (*)(T) );</fo:block></fo:block><fo:list-block id="id629310" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id629314" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Constructs the visitor with the given function.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id629322"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">visitor_ptr_t static visitor interfaces</fo:marker><fo:block font-size="10pt"><fo:wrapper id="id481416-bb"/><fo:inline font-family="monospace">visitor_ptr_t</fo:inline> static visitor interfaces</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id629336" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id629343" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block id="id532183-bb"><fo:block id="id629350" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">R <fo:wrapper id="id548238-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(<fo:inline font-style="italic">unspecified-forwarding-type</fo:inline> operand);
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> U&gt; <fo:inline font-weight="bold">void</fo:inline> <fo:wrapper id="id416481-bb"/><fo:inline font-weight="bold">operator</fo:inline>()(<fo:inline font-weight="bold">const</fo:inline> U&amp; );</fo:block></fo:block><fo:list-block id="id629415" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em"><fo:list-item id="id629418" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Effects</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If passed a value or reference of type
              <fo:inline font-family="monospace">T</fo:inline>, it invokes the function given at
              construction, appropriately forwarding
              <fo:inline font-family="monospace">operand</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id629441" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Returns the result of the function invocation.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id629448" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The overload taking a value or reference of type
              <fo:inline font-family="monospace">T</fo:inline> throws if the invoked function throws.
              The overload taking all other values <fo:inline font-style="italic">always</fo:inline>
              throws <fo:inline font-family="monospace"><fo:basic-link internal-destination="bad_visit">bad_visit</fo:basic-link></fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="visitor_ptr"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="12pt">Function template visitor_ptr</fo:block></fo:block><fo:block space-after="1em">Function template visitor_ptr <fo:inline font-family="serif">--</fo:inline> <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Returns a visitor object that adapts function pointers for
        use as a static visitor.</fo:block></fo:block><fo:block>boost::visitor_ptr</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id629503"><fo:block/><fo:block id="id629504" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
<fo:inline font-weight="bold">template</fo:inline>&lt;<fo:inline font-weight="bold">typename</fo:inline> R, <fo:inline font-weight="bold">typename</fo:inline> T&gt; <fo:basic-link internal-destination="visitor_ptr_t">visitor_ptr_t</fo:basic-link>&lt;T,R&gt; visitor_ptr(R (*)(T) );</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id629540"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="10pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Constructs and returns a
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="visitor_ptr_t">visitor_ptr_t</fo:basic-link></fo:inline> adaptor over the
        given function.</fo:block><fo:list-block id="id629559" provisional-distance-between-starts="7em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id629562" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Returns</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Returns a <fo:inline font-family="monospace"><fo:basic-link internal-destination="visitor_ptr_t">visitor_ptr_t</fo:basic-link></fo:inline>
          visitor object that, when applied, invokes the given
          function.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id629583" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Throws</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Will not throw. (Note, however, that the returned
        <fo:basic-link internal-destination="visitor_ptr_t">visitor object</fo:basic-link> may
        throw when applied.)</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.design"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Design Overview</fo:marker><fo:block font-size="17.28pt">Design Overview</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.design.never-empty"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">"Never-Empty" Guarantee</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.design.never-empty.guarantee"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">The Guarantee</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">All instances <fo:inline font-family="monospace">v</fo:inline> of type
        <fo:inline font-family="monospace"><fo:basic-link internal-destination="boost.variant">variant</fo:basic-link>&lt;T1,T2,...,TN&gt;</fo:inline>
        guarantee that <fo:inline font-family="monospace">v</fo:inline> has constructed content of one of the
        types <fo:inline font-family="monospace">T<fo:inline font-style="italic">i</fo:inline></fo:inline>, even if an operation on
        <fo:inline font-family="monospace">v</fo:inline> has previously failed.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This implies that <fo:inline font-family="monospace">variant</fo:inline> may be viewed precisely as
        a union of <fo:inline font-style="italic">exactly</fo:inline> its bounded types. This
        "never-empty" property insulates the user from the
        possibility of undefined <fo:inline font-family="monospace">variant</fo:inline> content and the
        significant additional complexity-of-use attendant with such a
        possibility.</fo:block></fo:block><fo:block id="variant.design.never-empty.problem"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">The Implementation Problem</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">While the
        <fo:basic-link internal-destination="variant.design.never-empty.guarantee">never-empty guarantee</fo:basic-link>
        might at first seem "obvious," it is in fact not even
        straightforward how to implement it in general (i.e., without
        unreasonably restrictive additional requirements on
        <fo:basic-link internal-destination="">bounded types</fo:basic-link>).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The central difficulty emerges in the details of
        <fo:inline font-family="monospace">variant</fo:inline> assignment. Given two instances <fo:inline font-family="monospace">v1</fo:inline>
        and <fo:inline font-family="monospace">v2</fo:inline> of some concrete <fo:inline font-family="monospace">variant</fo:inline> type, there
        are two distinct, fundamental cases we must consider for the assignment
        <fo:inline font-family="monospace">v1 = v2</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">First consider the case that <fo:inline font-family="monospace">v1</fo:inline> and <fo:inline font-family="monospace">v2</fo:inline>
        each contains a value of the same type. Call this type <fo:inline font-family="monospace">T</fo:inline>.
        In this situation, assignment is perfectly straightforward: use
        <fo:inline font-family="monospace">T::operator=</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">However, we must also consider the case that <fo:inline font-family="monospace">v1</fo:inline> and
        <fo:inline font-family="monospace">v2</fo:inline> contain values <fo:inline font-style="italic">of distinct types</fo:inline>.
        Call these types <fo:inline font-family="monospace">T</fo:inline> and <fo:inline font-family="monospace">U</fo:inline>. At this point,
        since <fo:inline font-family="monospace">variant</fo:inline> manages its content on the stack, the
        left-hand side of the assignment (i.e., <fo:inline font-family="monospace">v1</fo:inline>) must destroy
        its content so as to permit in-place copy-construction of the content
        of the right-hand side (i.e., <fo:inline font-family="monospace">v2</fo:inline>). In the end, whereas
        <fo:inline font-family="monospace">v1</fo:inline> began with content of type <fo:inline font-family="monospace">T</fo:inline>, it ends
        with content of type <fo:inline font-family="monospace">U</fo:inline>, namely a copy of the content of
        <fo:inline font-family="monospace">v2</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The crux of the problem, then, is this: in the event that
        copy-construction of the content of <fo:inline font-family="monospace">v2</fo:inline> fails, how can
        <fo:inline font-family="monospace">v1</fo:inline> maintain its "never-empty" guarantee?
        By the time copy-construction from <fo:inline font-family="monospace">v2</fo:inline> is attempted,
        <fo:inline font-family="monospace">v1</fo:inline> has already destroyed its content!</fo:block></fo:block><fo:block id="variant.design.never-empty.memcpy-solution"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">The "Ideal" Solution: False Hopes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Upon learning of this dilemma, clever individuals may propose the
        following scheme hoping to solve the problem:

        <fo:list-block id="id629936" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id629942" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Provide some "backup" storage, appropriately
            aligned, capable of holding values of the contained type of the
            left-hand side.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id629947" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Copy the memory (e.g., using <fo:inline font-family="monospace">memcpy</fo:inline>) of the
            storage of the left-hand side to the backup storage.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id629957" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Attempt a copy of the right-hand side content to the
            (now-replicated) left-hand side storage.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id629962" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>In the event of an exception from the copy, restore the
            backup (i.e., copy the memory from the backup storage back into
            the left-hand side storage).</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id629967" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Otherwise, in the event of success, now copy the memory
            of the left-hand side storage to another "temporary"
            aligned storage.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id629972" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Now restore the backup (i.e., again copying the memory)
            to the left-hand side storage; with the "old" content
            now restored, invoke the destructor of the contained type on the
            storage of the left-hand side.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id629979" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Finally, copy the memory of the temporary storage to the
            (now-empty) storage of the left-hand side.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">While complicated, it appears such a scheme could provide the
        desired safety in a relatively efficient manner. In fact, several
        early iterations of the library implemented this very approach.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Unfortunately, as Dave Abraham's first noted, the scheme results
        in undefined behavior:

        <fo:block start-indent="0.5in" end-indent="0.5in" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">"That's a lot of code to read through, but if it's
            doing what I think it's doing, it's undefined behavior.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">"Is the trick to move the bits for an existing object
            into a buffer so we can tentatively construct a new object in
            that memory, and later move the old bits back temporarily to
            destroy the old object?</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">"The standard does not give license to do that: only one
            object may have a given address at a time. See 3.8, and
            particularly paragraph 4."</fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Additionally, as close examination quickly reveals, the scheme has
        the potential to create irreconcilable race-conditions in concurrent
        environments.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Ultimately, even if the above scheme could be made to work on
        certain platforms with particular compilers, it is still necessary to
        find a portable solution.</fo:block></fo:block><fo:block id="variant.design.never-empty.double-storage-solution"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">An Initial Solution: Double Storage</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Upon learning of the infeasibility of the above scheme, Anthony
        Williams proposed in
        <fo:basic-link internal-destination="variant.refs.wil02">[Wil02]</fo:basic-link> a scheme that served
        as the basis for a portable solution in some pre-release
        implementations of <fo:inline font-family="monospace">variant</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The essential idea to this scheme, which shall be referred to as
        the "double storage" scheme, is to provide enough space
        within a <fo:inline font-family="monospace">variant</fo:inline> to hold two separate values of any of
        the bounded types.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With the secondary storage, a copy the right-hand side can be
        attempted without first destroying the content of the left-hand side;
        accordingly, the content of the left-hand side remains available in
        the event of an exception.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Thus, with this scheme, the <fo:inline font-family="monospace">variant</fo:inline> implementation
        needs only to keep track of which storage contains the content -- and
        dispatch any visitation requests, queries, etc. accordingly.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The most obvious flaw to this approach is the space overhead
        incurred. Though some optimizations could be applied in special cases
        to eliminate the need for double storage -- for certain bounded types
        or in some cases entirely (see
        <fo:basic-link internal-destination="variant.design.never-empty.optimizations">the section called &#x201C;Enabling Optimizations&#x201D;</fo:basic-link> for more
        details) -- many users on the Boost mailing list strongly objected to
        the use of double storage. In particular, it was noted that the
        overhead of double storage would be at play at all times -- even if
        assignment to <fo:inline font-family="monospace">variant</fo:inline> never occurred. For this reason
        and others, a new approach was developed.</fo:block></fo:block><fo:block id="variant.design.never-empty.heap-backup-solution"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Current Approach: Temporary Heap Backup</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Despite the many objections to the double storage solution, it was
        realized that no replacement would be without drawbacks. Thus, a
        compromise was desired.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To this end, Dave Abrahams suggested to include the following in
        the behavior specification for <fo:inline font-family="monospace">variant</fo:inline> assignment:
        "<fo:inline font-family="monospace">variant</fo:inline> assignment from one type to another may
        incur dynamic allocation." That is, while <fo:inline font-family="monospace">variant</fo:inline> would
        continue to store its content <fo:inline font-style="italic">in situ</fo:inline> after
        construction and after assignment involving identical contained types,
        <fo:inline font-family="monospace">variant</fo:inline> would store its content on the heap after
        assignment involving distinct contained types.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The algorithm for assignment would proceed as follows:

        <fo:list-block id="id630175" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id630181" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Copy-construct the content of the right-hand side to the
            heap; call the pointer to this data <fo:inline font-family="monospace">p</fo:inline>.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id630192" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destroy the content of the left-hand side.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id630195" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Copy <fo:inline font-family="monospace">p</fo:inline> to the left-hand side
            storage.</fo:block></fo:list-item-body></fo:list-item></fo:list-block>

        Since all operations on pointers are nothrow, this scheme would allow
        <fo:inline font-family="monospace">variant</fo:inline> to meet its never-empty guarantee.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The most obvious concern with this approach is that while it
        certainly eliminates the space overhead of double storage, it
        introduces the overhead of dynamic-allocation to <fo:inline font-family="monospace">variant</fo:inline>
        assignment -- not just in terms of the initial allocation but also
        as a result of the continued storage of the content on the heap. While
        the former problem is unavoidable, the latter problem may be avoided
        with the following "temporary heap backup" technique:

        <fo:list-block id="id630232" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id630238" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Copy-construct the content of the
            <fo:inline font-style="italic">left</fo:inline>-hand side to the heap; call the pointer to
            this data <fo:inline font-family="monospace">backup</fo:inline>.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id630253" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Destroy the content of the left-hand side.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id630256" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Copy-construct the content of the right-hand side in the
            (now-empty) storage of the left-hand side.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id630260" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>In the event of failure, copy <fo:inline font-family="monospace">backup</fo:inline> to the
            left-hand side storage.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id630271" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>In the event of success, deallocate the data pointed to
            by <fo:inline font-family="monospace">backup</fo:inline>.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With this technique: 1) only a single storage is used;
        2) allocation is on the heap in the long-term only if the assignment
        fails; and 3) after any <fo:inline font-style="italic">successful</fo:inline> assignment,
        storage within the <fo:inline font-family="monospace">variant</fo:inline> is guaranteed. For the
        purposes of the initial release of the library, these characteristics
        were deemed a satisfactory compromise solution.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There remain notable shortcomings, however. In particular, there
        may be some users for which heap allocation must be avoided at all
        costs; for other users, any allocation may need to occur via a
        user-supplied allocator. These issues will be addressed in the future
        (see <fo:basic-link internal-destination="variant.design.never-empty.roadmap">the section called &#x201C;Future Direction: Policy-based Implementation&#x201D;</fo:basic-link>). For now,
        though, the library treats storage of its content as an implementation
        detail. Nonetheless, as described in the next section, there
        <fo:inline font-style="italic">are</fo:inline> certain things the user can do to ensure the
        greatest efficiency for <fo:inline font-family="monospace">variant</fo:inline> instances (see
        <fo:basic-link internal-destination="variant.design.never-empty.optimizations">the section called &#x201C;Enabling Optimizations&#x201D;</fo:basic-link> for
        details).</fo:block></fo:block><fo:block id="variant.design.never-empty.optimizations"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Enabling Optimizations</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As described in
        <fo:basic-link internal-destination="variant.design.never-empty.problem">the section called &#x201C;The Implementation Problem&#x201D;</fo:basic-link>, the central
        difficulty in implementing the never-empty guarantee is the
        possibility of failed copy-construction during <fo:inline font-family="monospace">variant</fo:inline>
        assignment. Yet types with nothrow copy constructors clearly never
        face this possibility. Similarly, if one of the bounded types of the
        <fo:inline font-family="monospace">variant</fo:inline> is nothrow default-constructible, then such a
        type could be used as a safe "fallback" type in the event of
        failed copy construction.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Accordingly, <fo:inline font-family="monospace">variant</fo:inline> is designed to enable the
        following optimizations once the following criteria on its bounded
        types are met:

        <fo:list-block id="id630392" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id630394" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>For each bounded type <fo:inline font-family="monospace">T</fo:inline> that is nothrow
            copy-constructible (as indicated by
            <fo:inline font-family="monospace">boost::has_nothrow_copy</fo:inline>), the
            library guarantees <fo:inline font-family="monospace">variant</fo:inline> will use only single
            storage and in-place construction for <fo:inline font-family="monospace">T</fo:inline>.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id630424" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>If <fo:inline font-style="italic">any</fo:inline> bounded type is nothrow
            default-constructible (as indicated by
            <fo:inline font-family="monospace">boost::has_nothrow_constructor</fo:inline>),
            the library guarantees <fo:inline font-family="monospace">variant</fo:inline> will use only single
            storage and in-place construction for <fo:inline font-style="italic">every</fo:inline>
            bounded type in the <fo:inline font-family="monospace">variant</fo:inline>. Note, however, that in
            the event of assignment failure, an unspecified nothrow
            default-constructible bounded type will be default-constructed in
            the left-hand side operand so as to preserve the never-empty
            guarantee.</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Caveat</fo:inline>: On most platforms, the
        <fo:basic-link external-destination="../../libs/type_traits/index.html">Type Traits</fo:basic-link> templates
        <fo:inline font-family="monospace">has_nothrow_copy</fo:inline> and <fo:inline font-family="monospace">has_nothrow_constructor</fo:inline>
        by default return <fo:inline font-family="monospace">false</fo:inline> for all <fo:inline font-family="monospace">class</fo:inline> and
        <fo:inline font-family="monospace">struct</fo:inline> types. It is necessary therefore to provide
        specializations of these templates as appropriate for user-defined
        types, as demonstrated in the following:

<fo:block id="id630515" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">// ...in your code (at file scope)...

namespace boost {

  template &lt;&gt;
  struct has_nothrow_copy&lt; myUDT &gt;
    : mpl::true_
  {
  };

}
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Implementation Note</fo:inline>: So as to make
        the behavior of <fo:inline font-family="monospace">variant</fo:inline> more predictable in the aftermath
        of an exception, the current implementation prefers to default-construct
        <fo:inline font-family="monospace">boost::blank</fo:inline> if specified as a
        bounded type instead of other nothrow default-constructible bounded
        types. (If this is deemed to be a useful feature, it will become part
        of the specification for <fo:inline font-family="monospace">variant</fo:inline>; otherwise, it may be
        obsoleted. Please provide feedback to the Boost mailing list.)</fo:block></fo:block><fo:block id="variant.design.never-empty.roadmap"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Future Direction: Policy-based Implementation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As the previous sections have demonstrated, much effort has been
        expended in an attempt to provide a balance between performance, data
        size, and heap usage. Further, significant optimizations may be
        enabled in <fo:inline font-family="monospace">variant</fo:inline> on the basis of certain traits of its
        bounded types.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">However, there will be some users for whom the chosen compromise
        is unsatisfactory (e.g.: heap allocation must be avoided at all costs;
        if heap allocation is used, custom allocators must be used; etc.). For
        this reason, a future version of the library will support a
        policy-based implementation of <fo:inline font-family="monospace">variant</fo:inline>. While this will
        not eliminate the problems described in the previous sections, it will
        allow the decisions regarding tradeoffs to be decided by the user
        rather than the library designers.</fo:block></fo:block></fo:block></fo:block><fo:block id="variant.misc"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Miscellaneous Notes</fo:marker><fo:block font-size="17.28pt">Miscellaneous Notes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.versus-any"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Boost.Variant vs. Boost.Any</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As a discriminated union container, the Variant library shares many
    of the same features of the <fo:basic-link internal-destination="any">Any</fo:basic-link> library.
    However, since neither library wholly encapsulates the features of the
    other, one library cannot be generally recommended for use over the
    other.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">That said, Boost.Variant has several advantages over Boost.Any,
    such as:

    <fo:list-block id="id630640" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id630641" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Boost.Variant guarantees the type of its content is one of a
        finite, user-specified set of types.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id630646" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Boost.Variant provides <fo:inline font-style="italic">compile-time</fo:inline>
        checked visitation of its content. (By contrast, the current version
        of Boost.Any provides no visitation mechanism at all; but even if it
        did, it would need to be checked at run-time.)</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id630656" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Boost.Variant enables generic visitation of its content.
        (Even if Boost.Any did provide a visitation mechanism, it would enable
        visitation only of explicitly-specified types.)</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id630662" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Boost.Variant offers an efficient, stack-based storage scheme
        (avoiding the overhead of dynamic allocation).</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Of course, Boost.Any has several advantages over Boost.Variant,
    such as:

    <fo:list-block id="id630670" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id630672" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Boost.Any, as its name implies, allows virtually any type for
        its content, providing great flexibility.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id630676" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Boost.Any provides the no-throw guarantee of exception safety
        for its swap operation.</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id630680" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Boost.Any makes little use of template metaprogramming
        techniques (avoiding potentially hard-to-read error messages and
        significant compile-time processor and memory demands).</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="id630686"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Portability</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The library aims for 100% ANSI/ISO C++ conformance. However, this is
    strictly impossible due to the inherently non-portable nature of the
    <fo:basic-link external-destination="../../libs/type_traits/index.html">Type Traits</fo:basic-link> library's
    <fo:inline font-family="monospace">type_with_alignment</fo:inline> facility. In
    practice though, no compilers or platforms have been discovered where this
    reliance on undefined behavior has been an issue.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Additionally, significant effort has been expended to ensure proper
    functioning despite various compiler bugs and other conformance problems.
    To date the library <fo:basic-link internal-destination="variant.tests">testsuite</fo:basic-link> has
    been compiled and tested successfully on at least the following compilers
    for basic and advanced functionality:

    <fo:block id="id630728" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-column column-number="5"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Basic</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold"><fo:inline font-family="monospace">variant&lt;T&amp;&gt;</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold"><fo:basic-link internal-destination="variant.tutorial.over-sequence"><fo:inline font-family="monospace">make_variant_over</fo:inline></fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold"><fo:basic-link internal-destination="variant.tutorial.recursive.recursive-variant"><fo:inline font-family="monospace">make_recursive_variant</fo:inline></fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Borland C++ 5.5.1 and 5.6.4</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Comeau C++ 4.3.0</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>X</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>GNU GCC 3.3.1</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>X</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>GNU GCC 2.95.3</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>X</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Intel C++ 7.0</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>X</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Metrowerks CodeWarrior 8.3</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>X</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Microsoft Visual C++ 7.1</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>X</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Microsoft Visual C++ 6 SP5 and 7</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>X</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Finally, the current state of the testsuite in CVS may be found on the
    <fo:basic-link external-destination="http://boost.sourceforge.net/regression-logs">Test Summary</fo:basic-link>
    page. Please note, however, that this page reports on day-to-day changes
    to inter-release code found in the Boost CVS and thus likely does not
    match the state of code found in Boost releases.</fo:block></fo:block><fo:block id="variant.troubleshooting"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Troubleshooting</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Due to the heavy use of templates in the implementation of
  <fo:inline font-family="monospace">variant</fo:inline>, it is not uncommon when compiling to encounter
  problems related to template instantiaton depth, compiler memory, etc. This
  section attempts to provide advice to common problems experienced on several
  popular compilers.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">(This section is still in progress, with additional advice/feedback
  welcome. Please post to the Boost-Users list with any useful experiences you
  may have.)</fo:block><fo:block id="variant.troubleshooting.template-depth"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">"Template instantiation depth exceeds maximum"</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.troubleshooting.template-depth.gcc"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">GNU GCC</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The compiler option
        <fo:inline font-family="monospace">-ftemplate-depth-<fo:inline font-style="italic">NN</fo:inline></fo:inline> can increase the
        maximum allowed instantiation depth. (Try
        <fo:inline font-family="monospace">-ftemplate-depth-50</fo:inline>.)</fo:block></fo:block></fo:block><fo:block id="variant.troubleshooting.compiler-memory"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">"Internal heap limit reached"</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="variant.troubleshooting.compiler-memory.msvc"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Microsoft Visual C++</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The compiler option <fo:inline font-family="monospace">/Zm<fo:inline font-style="italic">NNN</fo:inline></fo:inline> can
        increase the memory allocation limit. The <fo:inline font-family="monospace">NNN</fo:inline> is a
        scaling percentage (i.e., <fo:inline font-family="monospace">100</fo:inline> denotes the default limit).
        (Try <fo:inline font-family="monospace">/Zm200</fo:inline>.)</fo:block></fo:block></fo:block></fo:block><fo:block id="variant.ack"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Acknowledgments</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Eric Friedman and Itay Maman designed the initial submission; Eric was
  the primary implementer.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Eric is also the library maintainer and has expanded upon the initial
  submission -- adding
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="make_recursive_variant">make_recursive_variant</fo:basic-link></fo:inline>,
  <fo:inline font-family="monospace"><fo:basic-link internal-destination="make_variant_over">make_variant_over</fo:basic-link></fo:inline>, support for
  reference content, etc.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Andrei Alexandrescu's work in
    [<fo:basic-link internal-destination="variant.refs.ale01a">Ale01a</fo:basic-link>]
and
    [<fo:basic-link internal-destination="variant.refs.ale02">Ale02</fo:basic-link>]
inspired the library's design.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Jeff Garland was the formal review manager.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Douglas Gregor,
Dave Abrahams,
Anthony Williams,
Fernando Cacciola,
Joel de Guzman,
Dirk Schreib,
Brad King,
Giovanni Bajo,
Eugene Gladyshev,
and others provided helpful feedback and suggestions to refine the semantics,
interface, and implementation of the library.</fo:block></fo:block></fo:block><fo:block id="variant.refs"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">References</fo:marker><fo:block font-size="17.28pt">References</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.abr00"><fo:basic-link external-destination="http://boost.org/more/generic_exception_safety.html">[Abr00]</fo:basic-link>
    David Abrahams.
    "Exception-Safety in Generic Components."
    M. Jazayeri, R. Loos, D. Musser (eds.):
      Generic Programming '98, Proc. of a Dagstuhl Seminar, Lecture Notes on Computer Science, Vol. 1766, pp. 69-79.
    Springer-Verlag Berlin Heidelberg.
    2000.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.abr01"><fo:basic-link external-destination="http://boost.org/more/error_handling.html">[Abr01]</fo:basic-link>
    David Abrahams.
    "Error and Exception Handling."
    Boost technical article.
    2001-2003.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.ale01a"><fo:basic-link external-destination="http://www.oonumerics.org/tmpw01/alexandrescu.pdf">[Ale01a]</fo:basic-link>
    Andrei Alexandrescu.
    "An Implementation of Discriminated Unions in C++."
    <fo:inline font-style="italic">OOPSLA 2001</fo:inline>, Second Workshop on C++ Template Programming.
    Tampa Bay, 14 October 2001.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.ale01b"><fo:basic-link external-destination="http://www.moderncppdesign.com/book/main.html">[Ale01b]</fo:basic-link>
    Andrei Alexandrescu.
    <fo:inline font-style="italic">Modern C++ Design</fo:inline>.
    Addison-Wesley, C++ In-Depth series.
    2001.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.ale02"><fo:basic-link external-destination="http://cuj.com/experts/2008/alexandr.htm">[Ale02]</fo:basic-link>
    Andrei Alexandrescu.
    "Generic&lt;Programming&gt;: Discriminated Unions" series:
        <fo:basic-link external-destination="http://cuj.com/experts/2004/alexandr.htm">Part 1</fo:basic-link>,
        <fo:basic-link external-destination="http://cuj.com/experts/2006/alexandr.htm">Part 2</fo:basic-link>,
        <fo:basic-link external-destination="http://cuj.com/experts/2008/alexandr.htm">Part 3</fo:basic-link>.
    <fo:inline font-style="italic">C/C++ Users Journal</fo:inline>.
    2002.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.boo02"><fo:basic-link external-destination="http://lists.boost.org/MailArchives/boost/msg30415.php">[Boo02]</fo:basic-link>
    Various Boost members.
    "Proposal --- A type-safe union."
    Boost public discussion.
    2002.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.c++98">
  [C++98]
  <fo:inline font-style="italic">International Standard, Programming Languages &#x2013; C++</fo:inline>.
  ISO/IEC:14882.
  1998.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.gof95">
    [GoF95]
    Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.
    <fo:inline font-style="italic">Design Patterns: Elements of Reusable Object-Oriented Software</fo:inline>.
    Addison-Wesley.
    1995.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.gre02"><fo:basic-link external-destination="http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?variant">[Gre02]</fo:basic-link>
    Douglas Gregor.
    "BOOST_USER: variant."
    Boost Wiki paper.
    2002.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.gur02"><fo:basic-link external-destination="../../libs/mpl/index.html">[Gur02]</fo:basic-link>
    Aleksey Gurtovoy.
    <fo:inline font-style="italic">Boost Metaprogramming Library.</fo:inline>
    2002.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.hen01"><fo:basic-link internal-destination="any">[Hen01]</fo:basic-link>
    Kevlin Henney.
    <fo:inline font-style="italic">Boost Any Library.</fo:inline>
    2001.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.mk02"><fo:basic-link external-destination="../../libs/preprocessor/index.html">[MK02]</fo:basic-link>
    Paul Mensonides and Vesa Karvonen.
    <fo:inline font-style="italic">Boost Preprocessor Library.</fo:inline>
    2002.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.mcd+01"><fo:basic-link external-destination="../../libs/type_traits/index.html">[MCD+01]</fo:basic-link>
    Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones, Mat Marcus, John Maddock, Jeremy Siek.
    <fo:inline font-style="italic">Boost Type Traits Library</fo:inline>.
    2001.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.sut00"><fo:basic-link external-destination="http://www.gotw.ca/publications/xc++.htm">[Sut00]</fo:basic-link>
    Herb Sutter.
    <fo:inline font-style="italic">Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions</fo:inline>.
    Addison-Wesley, C++ In-Depth series.
    2000.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="variant.refs.wil02"><fo:basic-link external-destination="http://aspn.activestate.com/ASPN/Mail/Message/boost/1314807">[Wil02]</fo:basic-link>
    Anthony Williams.
    Double-Storage Proposal.
    2002.
</fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="titlepage" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="boostbook"><fo:block><fo:block><fo:block text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" hyphenate="false">Part&#xA0;II.&#xA0;The BoostBook Documentation Format</fo:block></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence hyphenate="true" master-reference="lot" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>The BoostBook Documentation Format</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>The BoostBook Documentation Format</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="toc...boostbook" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">Table of Contents</fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id631415">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id631415"><fo:page-number-citation ref-id="id631415"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.getting.started">Getting Started</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.getting.started"><fo:page-number-citation ref-id="boostbook.getting.started"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.boostbook.boostbook.getting.started" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.docbook.config">Configuring local DocBook XSL and DTD distributions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.docbook.config"><fo:page-number-citation ref-id="boostbook.docbook.config"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.fop">Configuring Apache FOP for PostScript/PDF Output</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.fop"><fo:page-number-citation ref-id="boostbook.fop"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.doxygen">Configuring Doxygen for Documentation Extraction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.doxygen"><fo:page-number-citation ref-id="boostbook.doxygen"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.troubleshooting">Troubleshooting</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.troubleshooting"><fo:page-number-citation ref-id="boostbook.troubleshooting"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.documenting">Documenting libraries</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.documenting"><fo:page-number-citation ref-id="boostbook.documenting"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.boostbook.boostbook.documenting" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.defining">Defining a BoostBook library</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.defining"><fo:page-number-citation ref-id="boostbook.defining"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id632688">From HTML to BoostBook</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id632688"><fo:page-number-citation ref-id="id632688"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.sectioning">Sectioning in BoostBook</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.sectioning"><fo:page-number-citation ref-id="boostbook.sectioning"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.together">Bringing Together a BoostBook Document</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.together"><fo:page-number-citation ref-id="boostbook.together"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.boostbook.boostbook.together" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.linking">Linking in BoostBook</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.linking"><fo:page-number-citation ref-id="boostbook.linking"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="reference">Reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="reference"><fo:page-number-citation ref-id="reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.boostbook.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.class-specialization">
          BoostBook element <fo:inline font-family="monospace">class-specialization</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.class-specialization"><fo:page-number-citation ref-id="boostbook.dtd.class-specialization"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.link-test">
          BoostBook element <fo:inline font-family="monospace">link-test</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.link-test"><fo:page-number-citation ref-id="boostbook.dtd.link-test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.link-fail-test">
          BoostBook element <fo:inline font-family="monospace">link-fail-test</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.link-fail-test"><fo:page-number-citation ref-id="boostbook.dtd.link-fail-test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.typedef">
          BoostBook element <fo:inline font-family="monospace">typedef</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.typedef"><fo:page-number-citation ref-id="boostbook.dtd.typedef"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.static-constant">
          BoostBook element <fo:inline font-family="monospace">static-constant</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.static-constant"><fo:page-number-citation ref-id="boostbook.dtd.static-constant"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.code">
          BoostBook element <fo:inline font-family="monospace">code</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.code"><fo:page-number-citation ref-id="boostbook.dtd.code"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.destructor">
          BoostBook element <fo:inline font-family="monospace">destructor</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.destructor"><fo:page-number-citation ref-id="boostbook.dtd.destructor"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.template-type-parameter">
          BoostBook element <fo:inline font-family="monospace">template-type-parameter</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.template-type-parameter"><fo:page-number-citation ref-id="boostbook.dtd.template-type-parameter"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.description">
          BoostBook element <fo:inline font-family="monospace">description</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.description"><fo:page-number-citation ref-id="boostbook.dtd.description"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.librarylist">
          BoostBook element <fo:inline font-family="monospace">librarylist</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.librarylist"><fo:page-number-citation ref-id="boostbook.dtd.librarylist"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.library-reference">
          BoostBook element <fo:inline font-family="monospace">library-reference</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.library-reference"><fo:page-number-citation ref-id="boostbook.dtd.library-reference"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.boostbook">
          BoostBook element <fo:inline font-family="monospace">boostbook</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.boostbook"><fo:page-number-citation ref-id="boostbook.dtd.boostbook"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.union">
          BoostBook element <fo:inline font-family="monospace">union</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.union"><fo:page-number-citation ref-id="boostbook.dtd.union"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.inherit">
          BoostBook element <fo:inline font-family="monospace">inherit</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.inherit"><fo:page-number-citation ref-id="boostbook.dtd.inherit"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.template-varargs">
          BoostBook element <fo:inline font-family="monospace">template-varargs</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.template-varargs"><fo:page-number-citation ref-id="boostbook.dtd.template-varargs"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.source">
          BoostBook element <fo:inline font-family="monospace">source</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.source"><fo:page-number-citation ref-id="boostbook.dtd.source"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.function">
          BoostBook element <fo:inline font-family="monospace">function</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.function"><fo:page-number-citation ref-id="boostbook.dtd.function"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.postconditions">
          BoostBook element <fo:inline font-family="monospace">postconditions</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.postconditions"><fo:page-number-citation ref-id="boostbook.dtd.postconditions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.compile-test">
          BoostBook element <fo:inline font-family="monospace">compile-test</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.compile-test"><fo:page-number-citation ref-id="boostbook.dtd.compile-test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.method">
          BoostBook element <fo:inline font-family="monospace">method</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.method"><fo:page-number-citation ref-id="boostbook.dtd.method"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.snippet">
          BoostBook element <fo:inline font-family="monospace">snippet</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.snippet"><fo:page-number-citation ref-id="boostbook.dtd.snippet"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.constructor">
          BoostBook element <fo:inline font-family="monospace">constructor</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.constructor"><fo:page-number-citation ref-id="boostbook.dtd.constructor"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.namespace">
          BoostBook element <fo:inline font-family="monospace">namespace</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.namespace"><fo:page-number-citation ref-id="boostbook.dtd.namespace"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.if-fails">
          BoostBook element <fo:inline font-family="monospace">if-fails</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.if-fails"><fo:page-number-citation ref-id="boostbook.dtd.if-fails"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.free-function-group">
          BoostBook element <fo:inline font-family="monospace">free-function-group</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.free-function-group"><fo:page-number-citation ref-id="boostbook.dtd.free-function-group"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.functionname">
          BoostBook element <fo:inline font-family="monospace">functionname</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.functionname"><fo:page-number-citation ref-id="boostbook.dtd.functionname"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.librarycategory">
          BoostBook element <fo:inline font-family="monospace">librarycategory</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.librarycategory"><fo:page-number-citation ref-id="boostbook.dtd.librarycategory"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.notes">
          BoostBook element <fo:inline font-family="monospace">notes</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.notes"><fo:page-number-citation ref-id="boostbook.dtd.notes"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.data-member">
          BoostBook element <fo:inline font-family="monospace">data-member</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.data-member"><fo:page-number-citation ref-id="boostbook.dtd.data-member"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.specialization">
          BoostBook element <fo:inline font-family="monospace">specialization</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.specialization"><fo:page-number-citation ref-id="boostbook.dtd.specialization"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.union-specialization">
          BoostBook element <fo:inline font-family="monospace">union-specialization</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.union-specialization"><fo:page-number-citation ref-id="boostbook.dtd.union-specialization"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.throws">
          BoostBook element <fo:inline font-family="monospace">throws</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.throws"><fo:page-number-citation ref-id="boostbook.dtd.throws"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.template-arg">
          BoostBook element <fo:inline font-family="monospace">template-arg</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.template-arg"><fo:page-number-citation ref-id="boostbook.dtd.template-arg"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.method-group">
          BoostBook element <fo:inline font-family="monospace">method-group</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.method-group"><fo:page-number-citation ref-id="boostbook.dtd.method-group"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.requirement">
          BoostBook element <fo:inline font-family="monospace">requirement</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.requirement"><fo:page-number-citation ref-id="boostbook.dtd.requirement"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.precondition">
          BoostBook element <fo:inline font-family="monospace">precondition</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.precondition"><fo:page-number-citation ref-id="boostbook.dtd.precondition"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.paramtype">
          BoostBook element <fo:inline font-family="monospace">paramtype</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.paramtype"><fo:page-number-citation ref-id="boostbook.dtd.paramtype"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.using-class">
          BoostBook element <fo:inline font-family="monospace">using-class</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.using-class"><fo:page-number-citation ref-id="boostbook.dtd.using-class"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.run-test">
          BoostBook element <fo:inline font-family="monospace">run-test</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.run-test"><fo:page-number-citation ref-id="boostbook.dtd.run-test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.librarypurpose">
          BoostBook element <fo:inline font-family="monospace">librarypurpose</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.librarypurpose"><fo:page-number-citation ref-id="boostbook.dtd.librarypurpose"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.copy-assignment">
          BoostBook element <fo:inline font-family="monospace">copy-assignment</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.copy-assignment"><fo:page-number-citation ref-id="boostbook.dtd.copy-assignment"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.run-fail-test">
          BoostBook element <fo:inline font-family="monospace">run-fail-test</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.run-fail-test"><fo:page-number-citation ref-id="boostbook.dtd.run-fail-test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.template">
          BoostBook element <fo:inline font-family="monospace">template</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.template"><fo:page-number-citation ref-id="boostbook.dtd.template"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.compile-fail-test">
          BoostBook element <fo:inline font-family="monospace">compile-fail-test</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.compile-fail-test"><fo:page-number-citation ref-id="boostbook.dtd.compile-fail-test"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.returns">
          BoostBook element <fo:inline font-family="monospace">returns</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.returns"><fo:page-number-citation ref-id="boostbook.dtd.returns"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.default">
          BoostBook element <fo:inline font-family="monospace">default</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.default"><fo:page-number-citation ref-id="boostbook.dtd.default"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.parameter">
          BoostBook element <fo:inline font-family="monospace">parameter</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.parameter"><fo:page-number-citation ref-id="boostbook.dtd.parameter"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.signature">
          BoostBook element <fo:inline font-family="monospace">signature</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.signature"><fo:page-number-citation ref-id="boostbook.dtd.signature"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.overloaded-function">
          BoostBook element <fo:inline font-family="monospace">overloaded-function</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.overloaded-function"><fo:page-number-citation ref-id="boostbook.dtd.overloaded-function"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.class">
          BoostBook element <fo:inline font-family="monospace">class</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.class"><fo:page-number-citation ref-id="boostbook.dtd.class"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.librarycategorydef">
          BoostBook element <fo:inline font-family="monospace">librarycategorydef</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.librarycategorydef"><fo:page-number-citation ref-id="boostbook.dtd.librarycategorydef"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.type">
          BoostBook element <fo:inline font-family="monospace">type</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.type"><fo:page-number-citation ref-id="boostbook.dtd.type"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.enumvalue">
          BoostBook element <fo:inline font-family="monospace">enumvalue</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.enumvalue"><fo:page-number-citation ref-id="boostbook.dtd.enumvalue"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.overloaded-method">
          BoostBook element <fo:inline font-family="monospace">overloaded-method</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.overloaded-method"><fo:page-number-citation ref-id="boostbook.dtd.overloaded-method"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.programlisting">
          BoostBook element <fo:inline font-family="monospace">programlisting</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.programlisting"><fo:page-number-citation ref-id="boostbook.dtd.programlisting"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.complexity">
          BoostBook element <fo:inline font-family="monospace">complexity</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.complexity"><fo:page-number-citation ref-id="boostbook.dtd.complexity"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.purpose">
          BoostBook element <fo:inline font-family="monospace">purpose</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.purpose"><fo:page-number-citation ref-id="boostbook.dtd.purpose"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.template-nontype-parameter">
          BoostBook element <fo:inline font-family="monospace">template-nontype-parameter</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.template-nontype-parameter"><fo:page-number-citation ref-id="boostbook.dtd.template-nontype-parameter"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.library">
          BoostBook element <fo:inline font-family="monospace">library</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.library"><fo:page-number-citation ref-id="boostbook.dtd.library"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.librarycategorylist">
          BoostBook element <fo:inline font-family="monospace">librarycategorylist</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.librarycategorylist"><fo:page-number-citation ref-id="boostbook.dtd.librarycategorylist"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.using-namespace">
          BoostBook element <fo:inline font-family="monospace">using-namespace</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.using-namespace"><fo:page-number-citation ref-id="boostbook.dtd.using-namespace"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.struct-specialization">
          BoostBook element <fo:inline font-family="monospace">struct-specialization</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.struct-specialization"><fo:page-number-citation ref-id="boostbook.dtd.struct-specialization"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.struct">
          BoostBook element <fo:inline font-family="monospace">struct</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.struct"><fo:page-number-citation ref-id="boostbook.dtd.struct"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.lib">
          BoostBook element <fo:inline font-family="monospace">lib</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.lib"><fo:page-number-citation ref-id="boostbook.dtd.lib"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.enum">
          BoostBook element <fo:inline font-family="monospace">enum</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.enum"><fo:page-number-citation ref-id="boostbook.dtd.enum"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.requires">
          BoostBook element <fo:inline font-family="monospace">requires</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.requires"><fo:page-number-citation ref-id="boostbook.dtd.requires"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.effects">
          BoostBook element <fo:inline font-family="monospace">effects</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.effects"><fo:page-number-citation ref-id="boostbook.dtd.effects"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.libraryname">
          BoostBook element <fo:inline font-family="monospace">libraryname</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.libraryname"><fo:page-number-citation ref-id="boostbook.dtd.libraryname"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.libraryinfo">
          BoostBook element <fo:inline font-family="monospace">libraryinfo</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.libraryinfo"><fo:page-number-citation ref-id="boostbook.dtd.libraryinfo"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.testsuite">
          BoostBook element <fo:inline font-family="monospace">testsuite</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.testsuite"><fo:page-number-citation ref-id="boostbook.dtd.testsuite"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.header">
          BoostBook element <fo:inline font-family="monospace">header</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.header"><fo:page-number-citation ref-id="boostbook.dtd.header"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="boostbook.dtd.rationale">
          BoostBook element <fo:inline font-family="monospace">rationale</fo:inline></fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="boostbook.dtd.rationale"><fo:page-number-citation ref-id="boostbook.dtd.rationale"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Introduction</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Introduction</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="id631415"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The BoostBook documentation format is an extension of <fo:basic-link external-destination="http://www.docbook.org">DocBook</fo:basic-link>, an SGML- or
    XML-based format for describing documentation. BoostBook augments
    DocBook with semantic markup that aids in the documentation of C++
    libraries, specifically the <fo:basic-link external-destination="http://www.boost.org">Boost C++ libraries</fo:basic-link>, by
    providing the ability to express and refer to C++ constructs such
    as namespaces, classes, overloaded functions, templates, and
    specializations.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    BoostBook offers additional features more specific to its use for
    documenting the <fo:basic-link external-destination="http://www.boost.org">Boost C++
    libraries</fo:basic-link>. These features are intended to eliminate or
    reduce the need for duplication of information and to aid in
    documenting portions of Boost that might otherwise not be
    documented. Examples of Boost-centric features include:
      <fo:list-block id="id631457" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id631458" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Testsuites</fo:inline>:
          Testsuites in Boost are created by writing an appropriate
          Jamfile and including that Jamfile in
          <fo:inline font-family="monospace">status/Jamfile</fo:inline>. If the testsuites are
          documented (<fo:basic-link external-destination="http://www.boost.org/libs/multi_array/doc/test_cases.html">as
          in the MultiArray library</fo:basic-link>), the documentation is
          maintained separately from the testcase Jamfile, leading to
          duplication of information and the possibility of having the
          documentation out of sync with the Jamfile. BoostBook
          contains elements that describe a testsuite for both
          purposes: the BoostBook stylesheets can generate
          documentation for the testcases and also generate an
          appropriate Jamfile to integrate the testcases with the
          regression testing system.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id631493" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Example programs</fo:inline>:
          Example programs in documentation need to be duplicated in
          testcases to ensure that the examples compile and execute
          correctly. Keeping the two copies in sync is a tedious and
          error-prone task. For instance, the following code snippet
          persisted for six months:</fo:block><fo:block id="id631508" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
std::cout &lt;&lt; f(5, 3) &gt;&gt; std::endl;
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The BoostBook format allows testcases to be generated
          by weaving together program fragments from example programs
          in the documentation. This capability is integrated with
          testsuite generation so that example programs are normal
          tests in BoostBook.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id631521" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-weight="bold">Library
          categorization</fo:inline>: BoostBook contains primitives for
          placing libraries into categories and generating categorized
          and alphabetized lists of libraries.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Getting Started</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Getting Started</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="boostbook.getting.started"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Getting Started</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To use the Boost documentation tools, you will need an
    <fo:basic-link external-destination="http://www.w3c.org/Style/XSL/">XSLT</fo:basic-link>
    processor. There are many XSLT processors available, but for now
    we suggest that you use <fo:inline font-family="monospace">xsltproc</fo:inline>, part of <fo:basic-link external-destination="http://xmlsoft.org/XSLT/">libxslt</fo:basic-link>. There are several
    ways to get libxslt, depending on your platform:</fo:block><fo:list-block id="id631570" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id631571" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>On Unix: Build and install <fo:basic-link external-destination="http://xmlsoft.org/">libxml2</fo:basic-link> and then <fo:basic-link external-destination="http://xmlsoft.org/XSLT/">libxslt</fo:basic-link>. Both
        libraries are part of the <fo:basic-link external-destination="http://www.gnome.org">GNOME</fo:basic-link> project.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id631597" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>On Windows:</fo:block><fo:list-block id="id631601" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id631602" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>With <fo:basic-link external-destination="http://www.cygwin.com/">Cygwin</fo:basic-link>, select the
            libxml2 and libxslt packages</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id631613" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Without Cygwin, you need a patched version of the tools available from 
            <fo:basic-link external-destination="http://www.meta-comm.com/engineering/boost/xsltproc-win32.zip">
            here</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id631626" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>On MacOS X:</fo:block><fo:list-block id="id631630" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id631631" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If you have Fink, just get the <fo:inline font-family="monospace">libxslt</fo:inline> and <fo:inline font-family="monospace">doxygen</fo:inline> packages.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Without Fink, you can <fo:basic-link external-destination="http://www.zveno.com/open_source/libxml2xslt.html">download the libxslt binaries</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You will also need a recent checkout of Boost from <fo:basic-link external-destination="http://www.boost.org/more/download.html#CVS">CVS</fo:basic-link>. If
    you would like to limit your network bandwidth or limit delays in
    building documentation, now might be a good time to download the
    DocBook DTD and XSL stylesheets as described in <fo:basic-link internal-destination="boostbook.docbook.config">the section called &#x201C;Configuring local DocBook XSL and DTD distributions&#x201D;</fo:basic-link>. You should delete or make
    writable the <fo:inline font-family="monospace">.html</fo:inline> files in
    <fo:inline font-family="monospace">$BOOST_ROOT/doc/html</fo:inline> before continuing.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Now we can build some documentation. Change to the directory
    <fo:inline font-family="monospace">$BOOST_ROOT/doc</fo:inline> and run <fo:inline font-family="monospace">bjam --v2</fo:inline> to
    build HTML documentation. You should see several warnings like
    these while DocBook documentation is being built from BoostBook
    documentation:</fo:block><fo:block id="id631716" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">Cannot find function named 'checked_delete'
Cannot find function named 'checked_array_delete'
Cannot find function named 'next'</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">These warnings are emitted when the Boost documentation
    tools cannot find documentation for functions, methods, or classes
    that are referenced in the source, and are not harmful in any
    way. Once Boost.Jam has completed its execution, HTML
    documentation for Boost will be available in
    <fo:inline font-family="monospace">$BOOST_ROOT/doc/html</fo:inline>. You can also create HTML
    documentation in a single (large!) HTML file with the command line
    <fo:inline font-family="monospace">bjam --v2 onehtml</fo:inline>, or Unix man pages with the command
    line <fo:inline font-family="monospace">bjam --v2 man</fo:inline>. The complete list of output
    formats is listed in <fo:basic-link internal-destination="boostbook.output.formats">Table&#xA0;1, &#x201C;BoostBook Output Formats&#x201D;</fo:basic-link>. Several output formats can
    be passed to a single invocation of <fo:inline font-family="monospace">bjam</fo:inline>, e.g.,
    <fo:inline font-family="monospace">bjam --v2 html man docbook</fo:inline> would generate HTML
    (multiple files), man pages, and DocBook documentation.</fo:block><fo:block span="none"><fo:block id="boostbook.output.formats" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;1.&#xA0;BoostBook Output Formats</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Format</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>html</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">HTML output (multiple files). This is the default</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>onehtml</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">HTML output in a single HTML file.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>man</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Unix man pages.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>pdf</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">PDF. Requires <fo:basic-link external-destination="http://xml.apache.org/fop/index.html">Apache FOP</fo:basic-link>.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>ps</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Postscript. Requires <fo:basic-link external-destination="http://xml.apache.org/fop/index.html">Apache FOP</fo:basic-link>.</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>docbook</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:basic-link external-destination="http://www.docbook.org/">DocBook</fo:basic-link>.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>fo</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:basic-link external-destination="http://www.w3.org/TR/xsl/">XSL Formatting Objects</fo:basic-link></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block id="boostbook.docbook.config"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Configuring local DocBook XSL and DTD distributions</fo:marker><fo:block font-size="20.736pt">Configuring local DocBook XSL and DTD distributions</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">By default, the DocBook DTD and XSL stylesheets are
      accessed over a network automatically by the XSLT
      processor. However, these documents tend to be large and
      introduce a noticeable delay in the XSLT transformation
      step. This section describes how to configure Boost.Build to use
      local copies of the DocBook DTD and XSL stylesheets to improve
      processing time. There are a few requirements:

      <fo:list-block id="id631898" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id631899" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Norman Walsh's DocBook XSL stylesheets,
        available at the <fo:basic-link external-destination="http://docbook.sourceforge.net">DocBook sourceforge
        site</fo:basic-link>. Extract the DocBook XSL stylesheets to a
        directory on your hard disk (which we'll refer to as the
        <fo:inline font-family="monospace">DOCBOOK_XSL_DIR</fo:inline>).</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id631919" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The DocBook DTD, available as a ZIP archive at
        the <fo:basic-link external-destination="http://www.oasis-open.org/docbook/xml/4.2/index.shtml">OASIS
        DocBook site</fo:basic-link>. The package is called "DocBook XML
        4.2". Extract the DocBook DTD to a directory on your hard disk
        (which we'll refer to as the
        <fo:inline font-family="monospace">DOCBOOK_DTD_DIR</fo:inline>).</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In the directory <fo:inline font-family="monospace">tools/build/v2</fo:inline> is a file
      named <fo:inline font-family="monospace">user-config.jam</fo:inline>. Copy it to your home
      directory (or edit it in-place), and add a directive telling
      Boost.Build where to find the DocBook DTD and XSL stylesheets,
      replacing <fo:inline font-family="monospace">DOCBOOK_XSL_DIR</fo:inline> and
      <fo:inline font-family="monospace">DOCBOOK_DTD_DIR</fo:inline> with the paths of the DocBook XSL
      stylsheets and DTD, respectively:

<fo:block id="id631975" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">#  BoostBook configuration
using boostbook : DOCBOOK_XSL_DIR
                : DOCBOOK_DTD_DIR
                ;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Future invocations of <fo:inline font-weight="bold">bjam</fo:inline> will use the
      specified local copies of the DTD and XSL stylesheets in lieu of
      downloading the same sources over the network.</fo:block></fo:block><fo:block id="boostbook.fop"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Configuring Apache FOP for PostScript/PDF Output</fo:marker><fo:block font-size="20.736pt">Configuring Apache FOP for PostScript/PDF Output</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This section describes the steps required to configure
      <fo:basic-link external-destination="http://xml.apache.org/fop/index.html">Apache
      FOP</fo:basic-link> to generate PostScript and PDF output for BoostBook
      documents. To begin, you will need two pieces of software:
        <fo:list-block id="id632016" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id632017" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A Java interpreter, available at <fo:basic-link external-destination="http://java.sun.com">http://java.sun.com</fo:basic-link>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id632027" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Apache FOP, available at <fo:basic-link external-destination="http://xml.apache.org/fop/download.html">http://xml.apache.org/fop/download.html</fo:basic-link>. Version 0.20.4 seems to be most stable.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Once Java is installed (we'll call Java's directory
      <fo:inline font-family="monospace">JAVA_HOME</fo:inline>) and Apache FOP has been extracted into a
      directory (we'll call FOP's directory <fo:inline font-family="monospace">FOP_DIR</fo:inline>), we
      need to configure Boost.Build to use FOP. Edit your
      <fo:inline font-family="monospace">user-config.jam</fo:inline> or
      <fo:inline font-family="monospace">site-config.jam</fo:inline> and add the following,
      replacing <fo:inline font-family="monospace">FOP_DIR</fo:inline> with the directory where Apache
      FOP is installed, and replace <fo:inline font-family="monospace">JAVA_HOME</fo:inline> with the
      directory where Java is installed:

<fo:block id="id632085" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">using fop : FOP_DIR
          : JAVA_HOME
          ;</fo:block>

      In some cases, <fo:inline font-family="monospace">JAVA_HOME</fo:inline> is optional, but it often
      helps to specify it.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To test PDF generation, switch to the directory <fo:inline font-family="monospace">$BOOST_ROOT/doc</fo:inline> and execute the
      command <fo:inline font-weight="bold">bjam --v2 pdf</fo:inline>. In the absence of any
      errors, Apache FOP will be executed to transform the XSL:FO
      output of DocBook into a PDF file.</fo:block></fo:block><fo:block id="boostbook.doxygen"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Configuring Doxygen for Documentation Extraction</fo:marker><fo:block font-size="20.736pt">Configuring Doxygen for Documentation Extraction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This section details the steps necessary to use Doxygen to
      extract documentation and comments from source code to build a
      BoostBook document (and transform it into end-user
      documentation). You will need a somewhat recent version of <fo:basic-link external-destination="http://www.doxygen.org">Doxygen</fo:basic-link>; 1.2.18 or newer should suffice.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Boost.Build can be configured for Doxygen support by editing
      <fo:inline font-family="monospace">user-config.jam</fo:inline> or
      <fo:inline font-family="monospace">site-config.jam</fo:inline> to add:

        <fo:block id="id632163" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">using doxygen : DOXYGEN ;</fo:block><fo:inline font-family="monospace">DOXYGEN</fo:inline> should be replaced with the name of
      the <fo:inline font-weight="bold">doxygen</fo:inline> executable (with full path
      name). If the right <fo:inline font-weight="bold">doxygen</fo:inline> executable can be
      found via the path, this parameter can be omitted.</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id632191"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Important</fo:block><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The relative order of declarations in 
        <fo:inline font-family="monospace">user-config.jam</fo:inline> / <fo:inline font-family="monospace">site-config.jam</fo:inline>
        files is significant. In particular, <fo:inline font-family="monospace">using doxygen</fo:inline> 
        line should come <fo:inline font-style="italic">after</fo:inline> the
        <fo:inline font-family="monospace">using boostbook</fo:inline> declaration.
        </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Generating of documentation from source files using
      Doxygen requires two steps. The first step involves identifying
      the source files so that Doxygen can process them. The second
      step is to specify that the output of this process, a file in
      the Doxygen XML format, is input for a BoostBook document. The
      following <fo:inline font-family="monospace">Jamfile.v2</fo:inline> illustrates a simple
      case of generating reference documentation for the
      <fo:basic-link internal-destination="any">Any</fo:basic-link> library: </fo:block><fo:block id="id632252" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">project boost/any/doc ;
import boostbook : boostbook ; 
import doxygen : doxygen ;

doxygen any.doxygen : ../../../boost/any.hpp ;
boostbook any : any.doxygen ;</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In this example, we generate the Doxygen XML
      representation in the file <fo:inline font-family="monospace">any.doxygen</fo:inline> from
      the source file <fo:inline font-family="monospace">../../../boost/any.hpp</fo:inline> by
      invocing Doxygen. We then use <fo:inline font-family="monospace">any.doxygen</fo:inline>
      as a source for the BoostBook target <fo:inline font-family="monospace">any</fo:inline>, which
      will generate documentation in any format the user requests. The
      actual sequence of events in this transformation is:</fo:block><fo:list-block id="id632293" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id632300" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Doxygen parses the header file <fo:inline font-family="monospace">../../../boost/any.hpp</fo:inline> and outputs a single XML file <fo:inline font-family="monospace">any.doxygen</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id632317" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The XSLT processor applies the stylesheet <fo:inline font-family="monospace">doxygen2boostbook.xsl</fo:inline> to transform <fo:inline font-family="monospace">any.doxygen</fo:inline> into the BoostBook file <fo:inline font-family="monospace">any.xml</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id632342" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The XSLT processor applies the stylesheet <fo:inline font-family="monospace">docbook.xsl</fo:inline> to transform <fo:inline font-family="monospace">any.xml</fo:inline> into the DocBook XML document <fo:inline font-family="monospace">any.docbook</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id632367" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Further transformations may generate HTML, FO, PDF, etc. from <fo:inline font-family="monospace">any.docbook</fo:inline>.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="boostbook.troubleshooting"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Troubleshooting</fo:marker><fo:block font-size="20.736pt">Troubleshooting</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The Boost documentation tools are still in their early phase of 
      development, and some things don't work as seamlessly as we would like 
      them to, yet. In particular, error messages can be somewhat 
      uninformative at times. If you find yourself in the situation when 
      you have double checked everything, and yet things still don't work as 
      expected, consider helping the tools by deleting 
      <fo:inline font-family="monospace">bin.v2</fo:inline> build directory.
      </fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Documenting libraries</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Documenting libraries</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="boostbook.documenting"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Documenting libraries</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">BoostBook is an extension to <fo:basic-link external-destination="http://www.docbook.org">DocBook</fo:basic-link>, an XML format for
  representing documentation. BoostBook inherits much of its
  functionality and many elements from DocBook that are not
  redocumented here. When writing BoostBook documentation, please
  refer also to <fo:basic-link external-destination="http://docbook.org/tdg/en/index.html">DocBook: The Definitive
  Guide</fo:basic-link>.</fo:block><fo:block id="boostbook.defining"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Defining a BoostBook library</fo:marker><fo:block font-size="20.736pt">Defining a BoostBook library</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">BoostBook library documentation is contained entirely within
    a &lt;library&gt; XML element. To create a skeletal library, we
    need to create a new XML document (call it <fo:inline font-family="monospace">any.xml</fo:inline>)
    that contains basic information about the library. The following
    <fo:basic-link internal-destination="boostbook.documenting.skeletal">BoostBook XML
    example</fo:basic-link> describes basic information about the <fo:basic-link external-destination="http://www.boost.org/libs/any/index.html">Boost.Any</fo:basic-link>
    library:</fo:block><fo:block id="boostbook.documenting.skeletal" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Example&#xA0;1.&#xA0;A Skeletal BoostBook Library</fo:block><fo:block id="id632493" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
  "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd"&gt;
&lt;library name="Any" dirname="any" xmlns:xi="http://www.w3.org/2001/XInclude"
  id="any" last-revision="$Date: 2004/07/05 16:26:11 $"&gt;
  &lt;libraryinfo&gt;
    &lt;author&gt;
      &lt;firstname&gt;Kevlin&lt;/firstname&gt;
      &lt;surname&gt;Henney&lt;/surname&gt;
    &lt;/author&gt;
    &lt;librarypurpose&gt;
      Safe, generic container for single values of different value types
    &lt;/librarypurpose&gt; 
    &lt;librarycategory name="category:data-structures"/&gt;
  &lt;/libraryinfo&gt;
&lt;/library&gt;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The first three lines identify this document as a BoostBook
    <fo:basic-link external-destination="http://www.w3.org/XML/">XML</fo:basic-link> document. The
    DOCTYPE line states that the document conforms to the BoostBook
    DTD, and that the top-level element is a BoostBook
    &lt;library&gt;.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The &lt;library&gt; element actually describes the aspects
    of BoostBook library documentation. The attributes for the
    &lt;library&gt; element are:</fo:block><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Attributes for the &lt;library&gt; element</fo:block><fo:list-block id="id632534" provisional-distance-between-starts="13em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id632539" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">name</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The full name of the library, e.g., "Any"</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id632551" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">dirname</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The name of the directory, relative to
            <fo:inline font-family="monospace">boost/libs</fo:inline>, in which the library
            resides. This name may be a relative path, such as
            <fo:inline font-family="monospace">math/octonion</fo:inline>, using "/" for the directory
            separator.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id632578" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">id</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A short, unique name for the library. For libraries
          with simple directory names (e.g., ones that do not contain
          a "/"), this should be the same as the
          <fo:inline font-family="monospace">dirname</fo:inline>. This <fo:inline font-family="monospace">id</fo:inline> will be used to
          identify libraries and, for HTML output, will be used as the
          base name for the HTML file in which the library's
          documentation resides, so it should use only lowercase
          alphanumeric characters and underscores.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id632610" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">last-revision</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Always set to <fo:inline font-family="monospace">$Date: 2004/07/05 16:26:11 $</fo:inline>, which is
          expanded by CVS to include the date and time that the file
          was last modified.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Inside the &lt;library&gt; element we have the
    &lt;libraryinfo&gt; element, which gives information about the
    library itself. It contains the author's name (there may be more
    than one &lt;author&gt; element), followed by the purpose of the
    library and the list of categorizations. The
    &lt;librarypurpose&gt; element should always contain a very short
    (single sentence) description of the library's purpose, and should
    <fo:inline font-style="italic">not</fo:inline> terminate with a period.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The list of categories is specified by a set of
    &lt;librarycategory&gt; elements. Each &lt;librarycategory&gt;
    element has a <fo:inline font-family="monospace">name</fo:inline> element that identifies one of the
    categories. The actual list of categories is in the file
    <fo:inline font-family="monospace">doc/src/boost.xml</fo:inline>.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">At this point, we can apply the BoostBook XSL stylesheets to
    <fo:inline font-family="monospace">any.xml</fo:inline> (to DocBook) followed by a DocBook XSL
    stylesheet to generate HTML output, as described in <fo:basic-link internal-destination="boostbook.getting.started"><fo:inline font-style="italic">Getting Started</fo:inline></fo:basic-link>.</fo:block></fo:block><fo:block id="id632688"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">From HTML to BoostBook</fo:marker><fo:block font-size="20.736pt">From HTML to BoostBook</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Most library authors are comfortable with writing HTML
    documentation. Writing <fo:basic-link external-destination="http://www.docbook.org">DocBook</fo:basic-link> documentation (and,
    by extension, BoostBook documentation) is quite similar to writing
    HTML, except that BoostBook uses different element names from HTML
    (see <fo:basic-link internal-destination="html.to.boostbook">Table&#xA0;1, &#x201C;Converting HTML elements to BoostBook&#x201D;</fo:basic-link>) and BoostBook XML is a
    much more rigid format than HTML.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">One of the easiest ways to convert HTML documentation into
    BoostBook documentation is to use <fo:basic-link external-destination="http://tidy.sourceforge.net/">HTML Tidy</fo:basic-link> to transform
    your HTML into valid XHTML, which will make sure that all elements
    are properly closed, then apply the transformations in <fo:basic-link internal-destination="html.to.boostbook">Table&#xA0;1, &#x201C;Converting HTML elements to BoostBook&#x201D;</fo:basic-link> to the body of the XHTML
    document. The following command uses HTML Tidy to transform HTML
    into valid XHTML:</fo:block><fo:block id="id632737" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
  tidy -asxhtml input.html &gt; output.xhtml</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When converting documentation from HTML to BoostBook, note
    that some redundant information that has to be manually maintained
    in HTML is automatically generated in BoostBook: for instance, the
    library categorizations, purpose, and author list described in
    <fo:basic-link internal-destination="boostbook.defining">the section called &#x201C;Defining a BoostBook library&#x201D;</fo:basic-link> are used both in the
    documentation for the library and to build alphabetical and
    categorized lists of known libraries; similarly, tables of
    contents are built automatically from the titles of sections in
    the BoostBook document.</fo:block><fo:block span="none"><fo:block id="html.to.boostbook" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;1.&#xA0;Converting HTML elements to BoostBook</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block font-weight="bold">HTML</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block font-weight="bold">BoostBook</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;h1&gt;, &lt;h2&gt;, etc.</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;section&gt;, &lt;title&gt;; See <fo:basic-link internal-destination="boostbook.sectioning">the section called &#x201C;Sectioning in BoostBook&#x201D;</fo:basic-link></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;i&gt;, &lt;em&gt;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;emphasis&gt;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;b&gt;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;emphasis role="bold"&gt;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;ol&gt;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;orderedlist&gt;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;ul&gt;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;itemizedlist&gt;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;li&gt;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;listitem&gt;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;pre&gt;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;programlisting&gt;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;code&gt;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;computeroutput&gt;,&lt;code&gt;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;p&gt;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;para&gt;, &lt;simpara&gt;</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;a&gt;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;xref&gt;, &lt;link&gt;, &lt;ulink&gt;;, See <fo:basic-link internal-destination="boostbook.linking">the section called &#x201C;Linking in BoostBook&#x201D;</fo:basic-link></fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;table&gt;, &lt;tr&gt;, &lt;th&gt;, &lt;td&gt;</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" text-align="left"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">&lt;table&gt;, &lt;informaltable&gt;, &lt;tgroup&gt;, &lt;thead&gt;, &lt;tfoot&gt;, &lt;tbody&gt;, &lt;row&gt;, &lt;entry&gt;, &lt;entrytbl&gt;; BoostBook tables are equivalent to DocBook tables, for which there is a good <fo:basic-link external-destination="http://opensource.bureau-cornavin.com/crash-course/tables.html">tutorial here</fo:basic-link></fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="boostbook.sectioning"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Sectioning in BoostBook</fo:marker><fo:block font-size="20.736pt">Sectioning in BoostBook</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">"Sectioning" refers to organization of a document into separate sections, each with a title, some text, and possibly subsections. Each section is described in BoostBook via a &lt;section&gt; element. An introduction section may look like this:</fo:block><fo:block id="id632934" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
&lt;section id="any.intro"&gt;
  &lt;title&gt;Introduction&lt;/title&gt;
 
  &lt;para&gt;Introduction to a library...&lt;/para&gt;

  &lt;section&gt;
    &lt;title&gt;A Subsection&lt;/title&gt;
    &lt;para&gt;Subsection information...&lt;/para&gt;
  &lt;/section&gt;
&lt;/section&gt;
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The &lt;section&gt; element contains all information that
    should logically be grouped within that section. The title of the
    section is placed within the &lt;title&gt; element, and any
    paragraphs, programs, lists, tables, or subsections can occur
    within the section. The <fo:inline font-family="monospace">id</fo:inline> attribute of the
    &lt;section&gt; element gives a unique ID to each section, so that
    it may later be identified for linking. It is suggested that all
    IDs start with the short name of a library followed by a period,
    so that IDs do not conflict between libraries.</fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Bringing Together a BoostBook Document</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Bringing Together a BoostBook Document</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="boostbook.together"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Bringing Together a BoostBook Document</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="boostbook.linking"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Linking in BoostBook</fo:marker><fo:block font-size="20.736pt">Linking in BoostBook</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">How one links to another element in BoostBook depends
    greatly on the nature of the element linked and how the link
    should appear. There are three general linking elements:
    &lt;xref&gt;, &lt;link&gt;, and &lt;ulink&gt;. Additionally, there
    are linking elements for referencing specific types of entities,
    such as classes (&lt;classname&gt;), functions
    (&lt;functionname&gt;), or libraries (&lt;libraryname&gt;).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The &lt;xref&gt; element references elements that have an
    <fo:inline font-family="monospace">id</fo:inline> attribute and a title. The actual link text is
    composed from title and type of the element referenced. To link to
    a particular ID, create an &lt;xref&gt; element with the
    <fo:inline font-family="monospace">linkend</fo:inline> attribute set to the ID of the intended
    target. For instance, this section's ID is
    <fo:inline font-family="monospace">boostbook.linking</fo:inline>, so we create a reference it to
    with <fo:inline font-family="monospace">&lt;xref linkend="boostbook.linking"/&gt;</fo:inline>, which
    will look like this in the text: <fo:basic-link internal-destination="boostbook.linking">the section called &#x201C;Linking in BoostBook&#x201D;</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The &lt;link&gt; element references an ID in the same way as
    &lt;xref&gt;, except that &lt;link&gt; does not generate any text
    for the link, so text must be supplied within the element. For
    instance, we can again link to this chapter but this time specify
    our own text with <fo:inline font-family="monospace">&lt;link
    linkend="boostbook.linking"&gt;like this&lt;/link&gt;</fo:inline>. This
    markup will result in a link to this chapter that looks <fo:basic-link internal-destination="boostbook.linking">like this</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The &lt;ulink&gt; element references a URL that is outside
    of the DocBook document. The <fo:inline font-family="monospace">url</fo:inline> attribute contains
    the URL to link to, and the element data provides the link
    text.For instance, we can link to the the Boost web site with
    <fo:inline font-family="monospace">&lt;ulink
    url="http://www.boost.org"&gt;Boost&lt;/ulink&gt;,</fo:inline> which
    appears in the document like this: <fo:basic-link external-destination="http://www.boost.org">Boost</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The &lt;classname&gt;, &lt;functionname&gt;,
    &lt;methodname&gt;, and &lt;libraryname&gt; link to classes,
    functions, methods, and libraries, respectively. The text of each
    element gives both the name of the element to link to and the link
    text. For instance, we can link to the Function library with
    <fo:inline font-family="monospace">&lt;libraryname&gt;Function&lt;/libraryname&gt;</fo:inline>,
    which results in the following:
    <fo:basic-link internal-destination="function">Function</fo:basic-link>. In cases where the displayed
    text is different from the actual name, the <fo:inline font-family="monospace">alt</fo:inline>
    attribute can be specified. For instance, the following XML
    element references the <fo:basic-link internal-destination="boost.function">boost::function</fo:basic-link>
    class template but displays the text <fo:basic-link internal-destination="boost.function">function</fo:basic-link>: <fo:inline font-family="monospace">&lt;classname
    alt="boost::function"&gt;function&lt;/classname&gt;</fo:inline>.</fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Reference</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Reference</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="reference"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Reference</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Elements:<fo:list-block id="id633189" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id633193" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.boostbook">Element <fo:inline font-family="monospace">boostbook</fo:inline> - Defines a BoostBook book</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633208" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.class">Element <fo:inline font-family="monospace">class</fo:inline> - Declares a class or class template</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633224" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.class-specialization">Element <fo:inline font-family="monospace">class-specialization</fo:inline> - A specialization (partial or full) of a class template</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633241" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.code">Element <fo:inline font-family="monospace">code</fo:inline> - Mimics the <fo:inline font-family="monospace">code</fo:inline> tag in HTML</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633261" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.compile-fail-test">Element <fo:inline font-family="monospace">compile-fail-test</fo:inline> - A testcase that should fail to compile</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633278" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.compile-test">Element <fo:inline font-family="monospace">compile-test</fo:inline> - A testcase that should compile correctly</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633294" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.complexity">Element <fo:inline font-family="monospace">complexity</fo:inline> - The time/space/etc. complexity of a function</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633311" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.constructor">Element <fo:inline font-family="monospace">constructor</fo:inline> - Declares a constructor of the enclosing class</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633328" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.copy-assignment">Element <fo:inline font-family="monospace">copy-assignment</fo:inline> - Declares a copy-assignment operator</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633343" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.data-member">Element <fo:inline font-family="monospace">data-member</fo:inline> - Declares a data member of a class</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633360" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.default">Element <fo:inline font-family="monospace">default</fo:inline> - The default value of a function or template parameter</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633376" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.description">Element <fo:inline font-family="monospace">description</fo:inline> - Detailed description of a construct</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633392" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.destructor">Element <fo:inline font-family="monospace">destructor</fo:inline> - Declares a destructor for the enclosing class</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633408" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.effects">Element <fo:inline font-family="monospace">effects</fo:inline> - Declares the side effects of a function</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633424" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.enum">Element <fo:inline font-family="monospace">enum</fo:inline> - Declares an enumeration type</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633439" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.enumvalue">Element <fo:inline font-family="monospace">enumvalue</fo:inline> - A single value of an enumeration</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633455" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.free-function-group">Element <fo:inline font-family="monospace">free-function-group</fo:inline> - A set of functions that are grouped together under one name</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633473" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.function">Element <fo:inline font-family="monospace">function</fo:inline> - Declares a function</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633489" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.functionname">Element <fo:inline font-family="monospace">functionname</fo:inline> - References a function with the given name</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633506" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.header">Element <fo:inline font-family="monospace">header</fo:inline> - Declares a C++ header with the given name</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633522" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.if-fails">Element <fo:inline font-family="monospace">if-fails</fo:inline> - What it means when a testcase fails</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633537" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.inherit">Element <fo:inline font-family="monospace">inherit</fo:inline> - Declares a base class of the enclosing class or struct</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633553" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.lib">Element <fo:inline font-family="monospace">lib</fo:inline> - A library dependency</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633568" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.library">Element <fo:inline font-family="monospace">library</fo:inline> - Top-level element for a library</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633584" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.library-reference">Element <fo:inline font-family="monospace">library-reference</fo:inline> - Declares the reference material for a library</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633600" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.librarycategory">Element <fo:inline font-family="monospace">librarycategory</fo:inline> - Declares that the enclosing library is in this category</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633616" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.librarycategorydef">Element <fo:inline font-family="monospace">librarycategorydef</fo:inline> - Defines a new library category</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633633" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.librarycategorylist">Element <fo:inline font-family="monospace">librarycategorylist</fo:inline> - Categorized listing of libraries</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633649" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.libraryinfo">Element <fo:inline font-family="monospace">libraryinfo</fo:inline> - Provides information about a library</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633665" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.librarylist">Element <fo:inline font-family="monospace">librarylist</fo:inline> - Placeholder for an alphabetical list of libraries</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633681" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.libraryname">Element <fo:inline font-family="monospace">libraryname</fo:inline> - References a library of the given name</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633697" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.librarypurpose">Element <fo:inline font-family="monospace">librarypurpose</fo:inline> - Describes in one short sentence or phrase the purpose of a library</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633714" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.link-fail-test">Element <fo:inline font-family="monospace">link-fail-test</fo:inline> - Declares a test that should compile but fail to link</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633730" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.link-test">Element <fo:inline font-family="monospace">link-test</fo:inline> - Declares a test that should compile and link</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633747" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.method">Element <fo:inline font-family="monospace">method</fo:inline> - Declares a method, i.e., a member function</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633763" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.method-group">Element <fo:inline font-family="monospace">method-group</fo:inline> - A set of methods that are grouped together under one name</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633779" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.namespace">Element <fo:inline font-family="monospace">namespace</fo:inline> - Declares a namespace</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633795" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.notes">Element <fo:inline font-family="monospace">notes</fo:inline> - Non-normative notes about a function's semantics</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633812" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.overloaded-function">Element <fo:inline font-family="monospace">overloaded-function</fo:inline> - An overloaded function</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633827" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.overloaded-method">Element <fo:inline font-family="monospace">overloaded-method</fo:inline> - An overloaded method</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633844" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.parameter">Element <fo:inline font-family="monospace">parameter</fo:inline> - A function parameter</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633860" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.paramtype">Element <fo:inline font-family="monospace">paramtype</fo:inline> - The type of a function parameter</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633875" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.postconditions">Element <fo:inline font-family="monospace">postconditions</fo:inline> - Conditions that must hold after the function returns</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633891" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.precondition">Element <fo:inline font-family="monospace">precondition</fo:inline> - Conditions that must be met prior to executing a function</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633908" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.programlisting">Element <fo:inline font-family="monospace">programlisting</fo:inline> - A sample of program code</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633923" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.purpose">Element <fo:inline font-family="monospace">purpose</fo:inline> - A short description of an entity's use</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633940" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.rationale">Element <fo:inline font-family="monospace">rationale</fo:inline> - Describes the rationale for a particular function's design</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633956" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.requirement">Element <fo:inline font-family="monospace">requirement</fo:inline> - A requirement/property in the Jamfile for a testcase</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633973" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.requires">Element <fo:inline font-family="monospace">requires</fo:inline> - Declares the requirements of a function</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id633989" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.returns">Element <fo:inline font-family="monospace">returns</fo:inline> - Description of the return value of a function</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634005" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.run-fail-test">Element <fo:inline font-family="monospace">run-fail-test</fo:inline> - A testcase that should compile and link, but fail on execution</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634021" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.run-test">Element <fo:inline font-family="monospace">run-test</fo:inline> - A testcase that should compile, link, and execute</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634038" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.signature">Element <fo:inline font-family="monospace">signature</fo:inline> - One signature of an overloaded function or method</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634054" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.snippet">Element <fo:inline font-family="monospace">snippet</fo:inline> - Pulls in a code snippet from a <fo:inline font-family="monospace">programlisting</fo:inline> element</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634074" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.source">Element <fo:inline font-family="monospace">source</fo:inline> - Defines source code for a test</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634089" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.specialization">Element <fo:inline font-family="monospace">specialization</fo:inline> - Defines the specialization arguments for a class specialization</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634106" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.static-constant">Element <fo:inline font-family="monospace">static-constant</fo:inline> - Declares a static constant, e.g., <fo:inline font-family="monospace">const int foo = 5;</fo:inline>.</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634129" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.struct">Element <fo:inline font-family="monospace">struct</fo:inline> - Declares a C++ struct</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634144" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.struct-specialization">Element <fo:inline font-family="monospace">struct-specialization</fo:inline> - A specialization (full or partial) of a struct template</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634162" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.template">Element <fo:inline font-family="monospace">template</fo:inline> - Declares the template parameters of a class or function</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634178" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.template-arg">Element <fo:inline font-family="monospace">template-arg</fo:inline> - A template argument in a specialization</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634195" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.template-nontype-parameter">Element <fo:inline font-family="monospace">template-nontype-parameter</fo:inline> - A nontype template parameter</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634212" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.template-type-parameter">Element <fo:inline font-family="monospace">template-type-parameter</fo:inline> - Declares a template type parameter</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634227" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.template-varargs">Element <fo:inline font-family="monospace">template-varargs</fo:inline> - Declares a variable-length list of template parameters</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634245" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.testsuite">Element <fo:inline font-family="monospace">testsuite</fo:inline> - Describes a library testsuite</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634261" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.throws">Element <fo:inline font-family="monospace">throws</fo:inline> - Description of the exceptions thrown by a function</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634278" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.type">Element <fo:inline font-family="monospace">type</fo:inline> - The type of an element or return type of a function</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634294" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.typedef">Element <fo:inline font-family="monospace">typedef</fo:inline> - Declares a typedef</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634309" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.union">Element <fo:inline font-family="monospace">union</fo:inline> - Declares a C++ union or union template</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634325" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.union-specialization">Element <fo:inline font-family="monospace">union-specialization</fo:inline> - A specialization (full or partial) of a union template</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634342" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.using-class">Element <fo:inline font-family="monospace">using-class</fo:inline> - Injects the method and function names of a class into the local scope</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id634360" space-before.optimum="0em" space-before.minimum="0em" space-before.maximum="0.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="boostbook.dtd.using-namespace">Element <fo:inline font-family="monospace">using-namespace</fo:inline> - Injects the declared names from a namespace into the local scope</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.class-specialization"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element class-specialization</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">class-specialization</fo:inline> <fo:inline font-family="serif">--</fo:inline> A specialization (partial or full) of a class template</fo:block><fo:block>class-specialization</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id634400"><fo:block/>class-specialization ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.template">template</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.specialization">specialization</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.inherit">inherit</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?, (<fo:basic-link internal-destination="boostbook.dtd.static-constant">static-constant</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.typedef">typedef</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.enum">enum</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.copy-assignment">copy-assignment</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.constructor">constructor</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.destructor">destructor</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.method-group">method-group</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.free-function-group">free-function-group</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.function">function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.method">method</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-function">overloaded-function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-method">overloaded-method</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.data-member">data-member</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.class">class</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.class-specialization">class-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct">struct</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct-specialization">struct-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union">union</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union-specialization">union-specialization</fo:basic-link>)*)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id634604"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id634608" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.link-test"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element link-test</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">link-test</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a test that should compile and link</fo:block><fo:block>link-test</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id634700"><fo:block/>link-test ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.source">source</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.lib">lib</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.requirement">requirement</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.if-fails">if-fails</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id634744"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id634748" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>filename</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the file associated with this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.link-fail-test"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element link-fail-test</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">link-fail-test</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a test that should compile but fail to link</fo:block><fo:block>link-fail-test</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id634814"><fo:block/>link-fail-test ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.source">source</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.lib">lib</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.requirement">requirement</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.if-fails">if-fails</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id634859"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id634863" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>filename</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the file associated with this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.typedef"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element typedef</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">typedef</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a typedef</fo:block><fo:block>typedef</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id634928"><fo:block/>typedef ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.type">type</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id634956"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id634960" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.static-constant"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element static-constant</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">static-constant</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a static constant, e.g., <fo:inline font-family="monospace">const int foo = 5;</fo:inline>.</fo:block><fo:block>static-constant</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635060"><fo:block/>static-constant ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.type">type</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.default">default</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635096"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id635100" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.code"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element code</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">code</fo:inline> <fo:inline font-family="serif">--</fo:inline> Mimics the <fo:inline font-family="monospace">code</fo:inline> tag in HTML</fo:block><fo:block>code</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635195"><fo:block/>code ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635198"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Text within a <fo:inline font-family="monospace">code</fo:inline> tag is generally typeset
  in a different, monospaced font so that it stands out as code. The
  <fo:inline font-family="monospace">code</fo:inline> tag in BoostBook is transformed directly
  into the <fo:inline font-family="monospace">computeroutput</fo:inline> tag in DocBook.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635220"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id635224" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.destructor"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element destructor</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">destructor</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a destructor for the enclosing class</fo:block><fo:block>destructor</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635304"><fo:block/>destructor ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.requires">requires</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.effects">effects</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.postconditions">postconditions</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.returns">returns</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.throws">throws</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.complexity">complexity</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.notes">notes</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.rationale">rationale</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635389"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">General documentation on functions in BoostBook is provided in
  the <fo:basic-link internal-destination="boostbook.dtd.function"><fo:inline font-family="monospace">function</fo:inline></fo:basic-link>
  element documentation.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635406"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id635410" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>specifiers</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The specifiers for this function, e.g., inline, static, etc.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.template-type-parameter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element template-type-parameter</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">template-type-parameter</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a template type parameter</fo:block><fo:block>template-type-parameter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635504"><fo:block/>template-type-parameter ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.default">default</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635524"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id635528" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.description"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element description</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">description</fo:inline> <fo:inline font-family="serif">--</fo:inline> Detailed description of a construct</fo:block><fo:block>description</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635620"><fo:block/>description ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635623"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Although the context model for this element is
  <fo:inline font-family="monospace">ANY</fo:inline>, detailed descriptions should contain structured
  DocBook elements that occur within sections, e.g., paragraphs
  (<fo:inline font-family="monospace">para</fo:inline>, <fo:inline font-family="monospace">simpara</fo:inline>), lists
  (<fo:inline font-family="monospace">orderedlist</fo:inline>, <fo:inline font-family="monospace">itemizedlist</fo:inline>),
  tables (<fo:inline font-family="monospace">informaltable</fo:inline>, <fo:inline font-family="monospace">table</fo:inline>),
  etc.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635664"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id635668" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.librarylist"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element librarylist</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">librarylist</fo:inline> <fo:inline font-family="serif">--</fo:inline> Placeholder for an alphabetical list of libraries</fo:block><fo:block>librarylist</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635748"><fo:block/>librarylist ::= 
  EMPTY
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635751"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Developers aren't generally expected to use this element. Its existence is mainly as a placeholder in <fo:inline font-family="monospace">boost.xml</fo:inline> for the alphabetical list of libraries.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635766"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id635770" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.library-reference"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element library-reference</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">library-reference</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares the reference material for a library</fo:block><fo:block>library-reference</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635851"><fo:block/>library-reference ::= 
  (title?, section*, (<fo:basic-link internal-destination="boostbook.dtd.header">header</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.library-reference">library-reference</fo:basic-link>)*)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635871"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Reference documentation for a library is contained with a
  &lt;library-reference&gt; element. The &lt;library-reference&gt;
  element has no attributes, and contains as children only
  &lt;header&gt; elements.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The &lt;header&gt; element defines a C++ header file. Within
  each C++ header file lie the definitions of C++ constructs to be
  documented. The <fo:inline font-family="monospace">name</fo:inline> attribute of the &lt;header&gt;
  element gives the name of the header, as one would specify when
  including the header. For instance, the &lt;library-reference&gt;
  for the <fo:basic-link internal-destination="any">Any</fo:basic-link> library may look like
  this:</fo:block><fo:block id="id635911" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">&lt;library-reference&gt;
  &lt;header name="boost/any.hpp"&gt;
    &lt;!-- C++ constructs in this header --&gt;
  &lt;/header&gt;
&lt;/library-reference&gt;</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If the <fo:basic-link internal-destination="any">Any</fo:basic-link> library contained
  multiple headers, we would list them all as children of the
  &lt;library-reference&gt; element.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">library-reference</fo:inline> elements can be nested,
  so that reference material can be divided into separate sections
  that each contain different headers.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id635939"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id635943" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.boostbook"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element boostbook</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">boostbook</fo:inline> <fo:inline font-family="serif">--</fo:inline> Defines a BoostBook book</fo:block><fo:block>boostbook</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636022"><fo:block/>boostbook ::= 
  (title, (chapter| <fo:basic-link internal-destination="boostbook.dtd.library">library</fo:basic-link>)*)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636034"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This element is the topmost level defined by
  <fo:inline font-family="monospace">boost.xml</fo:inline> for all Boost documentation. It will
  not generally be used by developers.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636049"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id636053" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.union"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element union</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">union</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a C++ union or union template</fo:block><fo:block>union</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636133"><fo:block/>union ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.template">template</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.inherit">inherit</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?, (<fo:basic-link internal-destination="boostbook.dtd.static-constant">static-constant</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.typedef">typedef</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.enum">enum</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.copy-assignment">copy-assignment</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.constructor">constructor</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.destructor">destructor</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.method-group">method-group</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.free-function-group">free-function-group</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.function">function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.method">method</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-function">overloaded-function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-method">overloaded-method</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.data-member">data-member</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.class">class</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.class-specialization">class-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct">struct</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct-specialization">struct-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union">union</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union-specialization">union-specialization</fo:basic-link>)*)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636329"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id636333" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.inherit"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element inherit</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">inherit</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a base class of the enclosing class or struct</fo:block><fo:block>inherit</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636424"><fo:block/>inherit ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636427"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This element contains the name of the class inherited. The
  content model is free-form, as the inherited class may be an
  instantiation of a template and may have markup in it (e.g.,
  <fo:inline font-family="monospace">classname</fo:inline> tags).</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636441"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id636445" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>access</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.template-varargs"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element template-varargs</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">template-varargs</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a variable-length list of template parameters</fo:block><fo:block>template-varargs</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636536"><fo:block/>template-varargs ::= 
  EMPTY
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636539"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Variable-length template parameter lists are not allowed in
  C++, but because they are sometimes needed in documentation they are
  allowed in BoostBook. This element generally expands to "..." and
  can be used anywhere any other template parameter can be
  used.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636550"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id636554" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.source"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element source</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">source</fo:inline> <fo:inline font-family="serif">--</fo:inline> Defines source code for a test</fo:block><fo:block>source</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636634"><fo:block/>source ::= 
  (#PCDATA| <fo:basic-link internal-destination="boostbook.dtd.snippet">snippet</fo:basic-link>)*
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636645"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This element will contain the source code for a testcase that
  will be generated from the documentation. To reduce the amount of escaping in the text, it is recommended to use CDATA sections, which look like this:

    <fo:block id="id636655" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">&lt;![CDATA[
&lt;your program text here: no escaping needed!&gt;
]]&gt;</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In addition to CDATA sections, code snippets can be pulled in
  from <fo:inline font-family="monospace">programlisting</fo:inline> elements using the <fo:basic-link internal-destination="boostbook.dtd.snippet"><fo:inline font-family="monospace">snippet</fo:inline></fo:basic-link>
  element.</fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.function"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element function</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">function</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a function</fo:block><fo:block>function</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636702"><fo:block/>function ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.template">template</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.type">type</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.parameter">parameter</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.requires">requires</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.effects">effects</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.postconditions">postconditions</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.returns">returns</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.throws">throws</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.complexity">complexity</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.notes">notes</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.rationale">rationale</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636813"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">BoostBook functions are documented by specifying the
  function's interface (e.g., its C++ signature) and its
  behavior. Constructors, destructors, member functions, and free
  functions all use the same documentation method, although the
  top-level tags differ.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The behavior of functions in BoostBook is documenting using a
  style similar to that of the C++ standard, with clauses describing
  the requirements, effects, postconditions, exception behavior, and
  return values of functions.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The following example illustrates some constructors and a
  destructor for <fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link>. Note that one of
  the constructors takes a single parameter whose name is "other" and
  whose type, <fo:inline font-family="monospace">const any&amp;</fo:inline> is contained in the
  &lt;paramtype&gt; element; any number of parameters may be specified
  in this way.</fo:block><fo:block id="id636854" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">&lt;class name="any"&gt;
  &lt;constructor&gt;
    &lt;postconditions&gt;&lt;para&gt;&lt;this-&gt;empty()&gt;&lt;/para&gt;&lt;/postconditions&gt;
  &lt;/constructor&gt;

  &lt;constructor&gt;
    &lt;parameter name="other"&gt;
      &lt;paramtype&gt;const &lt;classname&gt;any&lt;/classname&gt;&amp;amp;&lt;/paramtype&gt;
    &lt;/parameter&gt;

    &lt;effects&gt;
      &lt;simpara&gt; Copy constructor that copies
        content of &lt;code&gt;other&lt;/code&gt; into the new instance,
        so that any content is equivalent in both type and value to the
        content of &lt;code&gt;other&lt;/code&gt;, or empty if
        &lt;code&gt;other&lt;/code&gt; is
        empty. 
      &lt;/simpara&gt;
    &lt;/effects&gt;

    &lt;throws&gt;
      &lt;simpara&gt;May fail with a 
        &lt;classname&gt;std::bad_alloc&lt;/classname&gt; exception or any
        exceptions arising from the copy constructor of the
        contained type.
      &lt;/simpara&gt;
    &lt;/throws&gt;
  &lt;/constructor&gt;

  &lt;destructor&gt;
     &lt;effects&gt;&lt;simpara&gt;Releases any and all resources used in
     management of instance.&lt;/simpara&gt;&lt;/effects&gt;

     &lt;throws&gt;&lt;simpara&gt;Nothing.&lt;/simpara&gt;&lt;/throws&gt;
  &lt;/destructor&gt;
&lt;/class&gt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id636892"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id636896" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>specifiers</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The specifiers for this function, e.g., inline, static, etc.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.postconditions"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element postconditions</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">postconditions</fo:inline> <fo:inline font-family="serif">--</fo:inline> Conditions that must hold after the function returns</fo:block><fo:block>postconditions</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637002"><fo:block/>postconditions ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637005"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id637009" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.compile-test"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element compile-test</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">compile-test</fo:inline> <fo:inline font-family="serif">--</fo:inline> A testcase that should compile correctly</fo:block><fo:block>compile-test</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637089"><fo:block/>compile-test ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.source">source</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.lib">lib</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.requirement">requirement</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.if-fails">if-fails</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637134"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id637138" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>filename</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the file associated with this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.method"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element method</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">method</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a method, i.e., a member function</fo:block><fo:block>method</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637204"><fo:block/>method ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.template">template</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.type">type</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.parameter">parameter</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.requires">requires</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.effects">effects</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.postconditions">postconditions</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.returns">returns</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.throws">throws</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.complexity">complexity</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.notes">notes</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.rationale">rationale</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637313"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">General documentation on functions in BoostBook is provided in
  the <fo:basic-link internal-destination="boostbook.dtd.function"><fo:inline font-family="monospace">function</fo:inline></fo:basic-link>
  element documentation.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637330"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id637334" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>cv</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>cv-qualifiers for this method, e.g., const volatile</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>specifiers</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The specifiers for this function, e.g., inline, static, etc.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.snippet"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element snippet</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">snippet</fo:inline> <fo:inline font-family="serif">--</fo:inline> Pulls in a code snippet from a <fo:inline font-family="monospace">programlisting</fo:inline> element</fo:block><fo:block>snippet</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637457"><fo:block/>snippet ::= 
  EMPTY
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637460"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id637464" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>The name of the <fo:inline font-family="monospace">programlisting</fo:inline> element to insert</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.constructor"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element constructor</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">constructor</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a constructor of the enclosing class</fo:block><fo:block>constructor</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637522"><fo:block/>constructor ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.template">template</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.parameter">parameter</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.requires">requires</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.effects">effects</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.postconditions">postconditions</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.returns">returns</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.throws">throws</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.complexity">complexity</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.notes">notes</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.rationale">rationale</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637624"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">General documentation on functions in BoostBook is provided in
  the <fo:basic-link internal-destination="boostbook.dtd.function"><fo:inline font-family="monospace">function</fo:inline></fo:basic-link>
  element documentation.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637641"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id637645" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>specifiers</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The specifiers for this function, e.g., inline, static, etc.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.namespace"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element namespace</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">namespace</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a namespace</fo:block><fo:block>namespace</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637738"><fo:block/>namespace ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.class">class</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.class-specialization">class-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct">struct</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct-specialization">struct-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union">union</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union-specialization">union-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.typedef">typedef</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.enum">enum</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.free-function-group">free-function-group</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.function">function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-function">overloaded-function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.namespace">namespace</fo:basic-link>)*
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637842"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">BoostBook namespaces are declared via the &lt;namespace&gt;
  element. As in C++, namespaces can be nested and contain other C++
  constructs, such as classes or functions. The <fo:inline font-family="monospace">name</fo:inline>
  attribute of a &lt;namespace&gt; element gives the namespace name
  (e.g., "boost"). The <fo:basic-link internal-destination="any">Any</fo:basic-link> library is
  defined entirely within namespace boost by:</fo:block><fo:block id="id637873" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">&lt;library-reference&gt;
  &lt;header name="boost/any.hpp"&gt;
    &lt;namespace name="boost"&gt;  
      &lt;!-- C++ constructs in the boost namespace --&gt;
    &lt;/namespace&gt;
  &lt;/header&gt;
&lt;/library-reference&gt;</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637886"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id637890" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.if-fails"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element if-fails</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">if-fails</fo:inline> <fo:inline font-family="serif">--</fo:inline> What it means when a testcase fails</fo:block><fo:block>if-fails</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637982"><fo:block/>if-fails ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id637985"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    Describes to the user the effect a certain failing testcase will
    have on the usefulness of a library. This field is useful in cases
    where a failed testcase does not mean that the library won't be
    useful, but may mean that certain library features will not be
    available.
  </fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.free-function-group"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element free-function-group</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">free-function-group</fo:inline> <fo:inline font-family="serif">--</fo:inline> A set of functions that are grouped together under one name</fo:block><fo:block>free-function-group</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638021"><fo:block/>free-function-group ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.function">function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-function">overloaded-function</fo:basic-link>)*
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638041"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id638045" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.functionname"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element functionname</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">functionname</fo:inline> <fo:inline font-family="serif">--</fo:inline> References a function with the given name</fo:block><fo:block>functionname</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638138"><fo:block/>functionname ::= 
  (#PCDATA)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638141"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If a function (or overloaded function) with the given,
  possibly-qualified name is found, this generates a link to that
  function. Lookups obey currently-active <fo:basic-link internal-destination="boostbook.dtd.using-class"><fo:inline font-family="monospace">using-class</fo:inline></fo:basic-link>
  and <fo:basic-link internal-destination="boostbook.dtd.using-namespace"><fo:inline font-family="monospace">using-namespace</fo:inline></fo:basic-link>
  directives to aid in the search, along with searching within the
  current scope.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638172"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id638176" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.librarycategory"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element librarycategory</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">librarycategory</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares that the enclosing library is in this category</fo:block><fo:block>librarycategory</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638256"><fo:block/>librarycategory ::= 
  (#PCDATA)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638259"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id638263" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.notes"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element notes</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">notes</fo:inline> <fo:inline font-family="serif">--</fo:inline> Non-normative notes about a function's semantics</fo:block><fo:block>notes</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638356"><fo:block/>notes ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638358"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id638362" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.data-member"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element data-member</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">data-member</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a data member of a class</fo:block><fo:block>data-member</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638443"><fo:block/>data-member ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.type">type</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638471"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id638475" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.specialization"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element specialization</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">specialization</fo:inline> <fo:inline font-family="serif">--</fo:inline> Defines the specialization arguments for a class specialization</fo:block><fo:block>specialization</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638568"><fo:block/>specialization ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.template-arg">template-arg</fo:basic-link>)*
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638580"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id638584" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.union-specialization"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element union-specialization</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">union-specialization</fo:inline> <fo:inline font-family="serif">--</fo:inline> A specialization (full or partial) of a union template</fo:block><fo:block>union-specialization</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638665"><fo:block/>union-specialization ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.template">template</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.specialization">specialization</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.inherit">inherit</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?, (<fo:basic-link internal-destination="boostbook.dtd.static-constant">static-constant</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.typedef">typedef</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.enum">enum</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.copy-assignment">copy-assignment</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.constructor">constructor</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.destructor">destructor</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.method-group">method-group</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.free-function-group">free-function-group</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.function">function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.method">method</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-function">overloaded-function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-method">overloaded-method</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.data-member">data-member</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.class">class</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.class-specialization">class-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct">struct</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct-specialization">struct-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union">union</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union-specialization">union-specialization</fo:basic-link>)*)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638869"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id638873" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.throws"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element throws</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">throws</fo:inline> <fo:inline font-family="serif">--</fo:inline> Description of the exceptions thrown by a function</fo:block><fo:block>throws</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638965"><fo:block/>throws ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id638967"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id638971" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.template-arg"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element template-arg</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">template-arg</fo:inline> <fo:inline font-family="serif">--</fo:inline> A template argument in a specialization</fo:block><fo:block>template-arg</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639052"><fo:block/>template-arg ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639055"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id639059" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.method-group"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element method-group</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">method-group</fo:inline> <fo:inline font-family="serif">--</fo:inline> A set of methods that are grouped together under one name</fo:block><fo:block>method-group</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639140"><fo:block/>method-group ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.method">method</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-method">overloaded-method</fo:basic-link>)*
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639160"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id639164" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.requirement"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element requirement</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">requirement</fo:inline> <fo:inline font-family="serif">--</fo:inline> A requirement/property in the Jamfile for a testcase</fo:block><fo:block>requirement</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639257"><fo:block/>requirement ::= 
  (#PCDATA)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639260"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A requirement is part of the dependencies of a target in a
  Jamfile. The <fo:inline font-family="monospace">name</fo:inline> attribute of a requirement element
  gives the name of the Boost.Build feature and the content of the
  requirement gives the value of that feature. A requirement such as
  <fo:inline font-family="monospace">&lt;includes&gt;foo.hpp</fo:inline> would be encoded as
  <fo:inline font-family="monospace">&lt;requirement
  name="includes"&gt;foo.hpp&lt;/requirement&gt;</fo:inline>.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639291"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id639295" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.precondition"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element precondition</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">precondition</fo:inline> <fo:inline font-family="serif">--</fo:inline> Conditions that must be met prior to executing a function</fo:block><fo:block>precondition</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639350"><fo:block/>precondition ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639353"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id639357" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.paramtype"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element paramtype</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">paramtype</fo:inline> <fo:inline font-family="serif">--</fo:inline> The type of a function parameter</fo:block><fo:block>paramtype</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639437"><fo:block/>paramtype ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639440"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id639444" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.using-class"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element using-class</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">using-class</fo:inline> <fo:inline font-family="serif">--</fo:inline> Injects the method and function names of a class into the local scope</fo:block><fo:block>using-class</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639525"><fo:block/>using-class ::= 
  EMPTY
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639528"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id639532" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.run-test"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element run-test</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">run-test</fo:inline> <fo:inline font-family="serif">--</fo:inline> A testcase that should compile, link, and execute</fo:block><fo:block>run-test</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639625"><fo:block/>run-test ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.source">source</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.lib">lib</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.requirement">requirement</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.if-fails">if-fails</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639669"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id639673" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>filename</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the file associated with this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.librarypurpose"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element librarypurpose</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">librarypurpose</fo:inline> <fo:inline font-family="serif">--</fo:inline> Describes in one short sentence or phrase the purpose of a library</fo:block><fo:block>librarypurpose</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639740"><fo:block/>librarypurpose ::= 
  (#PCDATA| <fo:basic-link internal-destination="boostbook.dtd.code">code</fo:basic-link>| ulink| <fo:basic-link internal-destination="boostbook.dtd.functionname">functionname</fo:basic-link>| methodname| classname)*
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639760"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id639764" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.copy-assignment"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element copy-assignment</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">copy-assignment</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a copy-assignment operator</fo:block><fo:block>copy-assignment</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639845"><fo:block/>copy-assignment ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.template">template</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.type">type</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.parameter">parameter</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.requires">requires</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.effects">effects</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.postconditions">postconditions</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.returns">returns</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.throws">throws</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.complexity">complexity</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.notes">notes</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.rationale">rationale</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639955"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The return type of the copy-assignment operator does not need
  to be specified. If left unspecified, it will default to an
  unqualified reference to the enclosing class type.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">General documentation on functions in BoostBook is provided in
  the <fo:basic-link internal-destination="boostbook.dtd.function"><fo:inline font-family="monospace">function</fo:inline></fo:basic-link>
  element documentation.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id639977"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id639981" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>cv</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>cv-qualifiers for this method, e.g., const volatile</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>specifiers</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The specifiers for this function, e.g., inline, static, etc.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.run-fail-test"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element run-fail-test</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">run-fail-test</fo:inline> <fo:inline font-family="serif">--</fo:inline> A testcase that should compile and link, but fail on execution</fo:block><fo:block>run-fail-test</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640087"><fo:block/>run-fail-test ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.source">source</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.lib">lib</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.requirement">requirement</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.if-fails">if-fails</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640132"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id640136" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>filename</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the file associated with this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.template"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element template</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">template</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares the template parameters of a class or function</fo:block><fo:block>template</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640202"><fo:block/>template ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.template-type-parameter">template-type-parameter</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.template-nontype-parameter">template-nontype-parameter</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.template-varargs">template-varargs</fo:basic-link>)*
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640233"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id640237" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.compile-fail-test"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element compile-fail-test</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">compile-fail-test</fo:inline> <fo:inline font-family="serif">--</fo:inline> A testcase that should fail to compile</fo:block><fo:block>compile-fail-test</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640316"><fo:block/>compile-fail-test ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.source">source</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.lib">lib</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.requirement">requirement</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.if-fails">if-fails</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640361"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id640365" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>filename</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the file associated with this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.returns"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element returns</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">returns</fo:inline> <fo:inline font-family="serif">--</fo:inline> Description of the return value of a function</fo:block><fo:block>returns</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640431"><fo:block/>returns ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640434"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id640438" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.default"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element default</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">default</fo:inline> <fo:inline font-family="serif">--</fo:inline> The default value of a function or template parameter</fo:block><fo:block>default</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640518"><fo:block/>default ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640520"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id640524" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.parameter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element parameter</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">parameter</fo:inline> <fo:inline font-family="serif">--</fo:inline> A function parameter</fo:block><fo:block>parameter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640604"><fo:block/>parameter ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.paramtype">paramtype</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.default">default</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640624"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id640628" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.signature"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element signature</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">signature</fo:inline> <fo:inline font-family="serif">--</fo:inline> One signature of an overloaded function or method</fo:block><fo:block>signature</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640682"><fo:block/>signature ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.template">template</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.type">type</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.parameter">parameter</fo:basic-link>*)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640710"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    A signature refers to one declaration of an overloaded function or
    method. The signature itself has no name, because the name of the
    overloaded function or method is used. An overloaded function or
    method will have several signatures that will generally be typeset
    together.
  </fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640722"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id640726" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>cv</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>cv-qualifiers for this method, e.g., const volatile</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>specifiers</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The specifiers for this function, e.g., inline, static, etc.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.overloaded-function"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element overloaded-function</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">overloaded-function</fo:inline> <fo:inline font-family="serif">--</fo:inline> An overloaded function</fo:block><fo:block>overloaded-function</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640832"><fo:block/>overloaded-function ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.signature">signature</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.requires">requires</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.effects">effects</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.postconditions">postconditions</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.returns">returns</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.throws">throws</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.complexity">complexity</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.notes">notes</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.rationale">rationale</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640926"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">General documentation on functions in BoostBook is provided in
  the <fo:basic-link internal-destination="boostbook.dtd.function"><fo:inline font-family="monospace">function</fo:inline></fo:basic-link>
  element documentation.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id640943"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id640947" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.class"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element class</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">class</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a class or class template</fo:block><fo:block>class</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641039"><fo:block/>class ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.template">template</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.inherit">inherit</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?, (<fo:basic-link internal-destination="boostbook.dtd.static-constant">static-constant</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.typedef">typedef</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.enum">enum</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.copy-assignment">copy-assignment</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.constructor">constructor</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.destructor">destructor</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.method-group">method-group</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.free-function-group">free-function-group</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.function">function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.method">method</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-function">overloaded-function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-method">overloaded-method</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.data-member">data-member</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.class">class</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.class-specialization">class-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct">struct</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct-specialization">struct-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union">union</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union-specialization">union-specialization</fo:basic-link>)*)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641234"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">C++ classes and class templates are described via the
  &lt;class&gt; element. Each class has a name (e.g., "any") given by
  the <fo:inline font-family="monospace">name</fo:inline> attribute, a purpose given by the
  &lt;purpose&gt; element, documentation, and a set of types,
  functions, base classes, and data members. Here is a minimal
  definition of the <fo:basic-link internal-destination="boost.any">boost::any</fo:basic-link> class:</fo:block><fo:block id="id641268" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">&lt;namespace name="boost"&gt;
  &lt;class name="any"&gt;
    &lt;purpose&gt;
      A class whose instances can hold instances of any type that satisfies
      ValueType requirements.
    &lt;/purpose&gt;
  &lt;/class&gt;
&lt;/namespace&gt;</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Additional class documentation can be contained in a
  <fo:inline font-family="monospace">description</fo:inline> element following the &lt;purpose&gt;
  element. This documentation will be typeset prior to documentation
  for specific elements in the class (e.g., constructors or
  methods).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class inheritance is described via the &lt;inherit&gt;
  element. The &lt;inherit&gt; element requires an <fo:inline font-family="monospace">access</fo:inline>
  attribute which must be one of <fo:inline font-style="italic">public</fo:inline>,
  <fo:inline font-style="italic">protected</fo:inline>, or <fo:inline font-style="italic">private</fo:inline>. The
  content of the &lt;inherited&gt; element in C++ code that names the
  class inherited, and may contain markup to link to the class. The
  following description of the class
  <fo:basic-link internal-destination="bad_any_cast">boost::bad_any_cast</fo:basic-link> describes public
  inheritance from the class std::bad_cast. It
  also defines the &lt;purpose&gt; element, which contains a short
  description of the use of the class.</fo:block><fo:block id="id641338" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">&lt;class name="bad_any_cast"&gt;
  &lt;inherit access="public"&gt;&lt;classname&gt;std::bad_cast&lt;/classname&gt;&lt;/inherit&gt;
  &lt;purpose&gt;&lt;para&gt;The exception thrown in the event of a failed
  &lt;functionname&gt;any_cast&lt;/functionname&gt; of an
  &lt;classname&gt;any&lt;/classname&gt; value.&lt;/para&gt;&lt;/purpose&gt;
&lt;/class&gt;</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Class templates are defined by &lt;class&gt; elements with a
  &lt;template&gt; child element at the beginning.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641354"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id641358" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.librarycategorydef"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element librarycategorydef</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">librarycategorydef</fo:inline> <fo:inline font-family="serif">--</fo:inline> Defines a new library category</fo:block><fo:block>librarycategorydef</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641452"><fo:block/>librarycategorydef ::= 
  (#PCDATA)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641455"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">All library category definitions should be in <fo:inline font-family="monospace">doc/src/boost.xml</fo:inline>, and the names of categories must be prefixed with "<fo:inline font-family="monospace">category:</fo:inline>".</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641476"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id641480" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.type"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element type</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">type</fo:inline> <fo:inline font-family="serif">--</fo:inline> The type of an element or return type of a function</fo:block><fo:block>type</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641573"><fo:block/>type ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641575"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id641579" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.enumvalue"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element enumvalue</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">enumvalue</fo:inline> <fo:inline font-family="serif">--</fo:inline> A single value of an enumeration</fo:block><fo:block>enumvalue</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641660"><fo:block/>enumvalue ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.default">default</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641671"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id641675" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.overloaded-method"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element overloaded-method</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">overloaded-method</fo:inline> <fo:inline font-family="serif">--</fo:inline> An overloaded method</fo:block><fo:block>overloaded-method</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641767"><fo:block/>overloaded-method ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.signature">signature</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.requires">requires</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.effects">effects</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.postconditions">postconditions</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.returns">returns</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.throws">throws</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.complexity">complexity</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.notes">notes</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.rationale">rationale</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641861"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">General documentation on functions in BoostBook is provided in
  the <fo:basic-link internal-destination="boostbook.dtd.function"><fo:inline font-family="monospace">function</fo:inline></fo:basic-link>
  element documentation.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641878"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id641882" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.programlisting"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element programlisting</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">programlisting</fo:inline> <fo:inline font-family="serif">--</fo:inline> A sample of program code</fo:block><fo:block>programlisting</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641975"><fo:block/>programlisting ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id641978"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id641982" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.complexity"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element complexity</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">complexity</fo:inline> <fo:inline font-family="serif">--</fo:inline> The time/space/etc. complexity of a function</fo:block><fo:block>complexity</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642037"><fo:block/>complexity ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642040"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id642044" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.purpose"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element purpose</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">purpose</fo:inline> <fo:inline font-family="serif">--</fo:inline> A short description of an entity's use</fo:block><fo:block>purpose</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642124"><fo:block/>purpose ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642126"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id642130" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.template-nontype-parameter"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element template-nontype-parameter</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">template-nontype-parameter</fo:inline> <fo:inline font-family="serif">--</fo:inline> A nontype template parameter</fo:block><fo:block>template-nontype-parameter</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642212"><fo:block/>template-nontype-parameter ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.type">type</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.default">default</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642239"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id642243" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.library"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element library</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">library</fo:inline> <fo:inline font-family="serif">--</fo:inline> Top-level element for a library</fo:block><fo:block>library</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642335"><fo:block/>library ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.libraryinfo">libraryinfo</fo:basic-link>, (title, ((section| <fo:basic-link internal-destination="boostbook.dtd.library-reference">library-reference</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.testsuite">testsuite</fo:basic-link>))+)?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642364"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id642368" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>dirname</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>url</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>html-only</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>&#xA0;</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.librarycategorylist"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element librarycategorylist</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">librarycategorylist</fo:inline> <fo:inline font-family="serif">--</fo:inline> Categorized listing of libraries</fo:block><fo:block>librarycategorylist</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642492"><fo:block/>librarycategorylist ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.librarycategorydef">librarycategorydef</fo:basic-link>)*
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642505"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This element is not intended for use by developers, but is
  used by <fo:inline font-family="monospace">doc/src/boost.xml</fo:inline> as a
  placeholder.</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642520"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id642524" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.using-namespace"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element using-namespace</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">using-namespace</fo:inline> <fo:inline font-family="serif">--</fo:inline> Injects the declared names from a namespace into the local scope</fo:block><fo:block>using-namespace</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642604"><fo:block/>using-namespace ::= 
  EMPTY
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642607"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id642611" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.struct-specialization"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element struct-specialization</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">struct-specialization</fo:inline> <fo:inline font-family="serif">--</fo:inline> A specialization (full or partial) of a struct template</fo:block><fo:block>struct-specialization</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642706"><fo:block/>struct-specialization ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.template">template</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.specialization">specialization</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.inherit">inherit</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?, (<fo:basic-link internal-destination="boostbook.dtd.static-constant">static-constant</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.typedef">typedef</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.enum">enum</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.copy-assignment">copy-assignment</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.constructor">constructor</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.destructor">destructor</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.method-group">method-group</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.free-function-group">free-function-group</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.function">function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.method">method</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-function">overloaded-function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-method">overloaded-method</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.data-member">data-member</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.class">class</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.class-specialization">class-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct">struct</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct-specialization">struct-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union">union</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union-specialization">union-specialization</fo:basic-link>)*)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id642910"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id642914" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.struct"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element struct</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">struct</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a C++ struct</fo:block><fo:block>struct</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643005"><fo:block/>struct ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.template">template</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.inherit">inherit</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?, (<fo:basic-link internal-destination="boostbook.dtd.static-constant">static-constant</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.typedef">typedef</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.enum">enum</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.copy-assignment">copy-assignment</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.constructor">constructor</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.destructor">destructor</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.method-group">method-group</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.free-function-group">free-function-group</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.function">function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.method">method</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-function">overloaded-function</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.overloaded-method">overloaded-method</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.data-member">data-member</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.class">class</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.class-specialization">class-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct">struct</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.struct-specialization">struct-specialization</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union">union</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.union-specialization">union-specialization</fo:basic-link>)*)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643201"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id643205" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.lib"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element lib</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">lib</fo:inline> <fo:inline font-family="serif">--</fo:inline> A library dependency</fo:block><fo:block>lib</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643296"><fo:block/>lib ::= 
  (#PCDATA)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643299"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Description</fo:marker><fo:block font-size="17.28pt">Description</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Declares a library dependency on the library named by the content of this element, to be emitted in a Jamfile.</fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.enum"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element enum</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">enum</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares an enumeration type</fo:block><fo:block>enum</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643330"><fo:block/>enum ::= 
  (<fo:basic-link internal-destination="boostbook.dtd.enumvalue">enumvalue</fo:basic-link>*, <fo:basic-link internal-destination="boostbook.dtd.purpose">purpose</fo:basic-link>?, <fo:basic-link internal-destination="boostbook.dtd.description">description</fo:basic-link>?)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643357"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id643361" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.requires"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element requires</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">requires</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares the requirements of a function</fo:block><fo:block>requires</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643454"><fo:block/>requires ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643456"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id643460" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.effects"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element effects</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">effects</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares the side effects of a function</fo:block><fo:block>effects</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643540"><fo:block/>effects ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643542"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id643546" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.libraryname"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element libraryname</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">libraryname</fo:inline> <fo:inline font-family="serif">--</fo:inline> References a library of the given name</fo:block><fo:block>libraryname</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643627"><fo:block/>libraryname ::= 
  (#PCDATA)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643630"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id643634" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.libraryinfo"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element libraryinfo</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">libraryinfo</fo:inline> <fo:inline font-family="serif">--</fo:inline> Provides information about a library</fo:block><fo:block>libraryinfo</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643714"><fo:block/>libraryinfo ::= 
  (author+, copyright*, legalnotice*, <fo:basic-link internal-destination="boostbook.dtd.librarypurpose">librarypurpose</fo:basic-link>, <fo:basic-link internal-destination="boostbook.dtd.librarycategory">librarycategory</fo:basic-link>*)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643734"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id643738" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.testsuite"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element testsuite</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">testsuite</fo:inline> <fo:inline font-family="serif">--</fo:inline> Describes a library testsuite</fo:block><fo:block>testsuite</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643818"><fo:block/>testsuite ::= 
  ((<fo:basic-link internal-destination="boostbook.dtd.compile-test">compile-test</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.link-test">link-test</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.run-test">run-test</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.compile-fail-test">compile-fail-test</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.link-fail-test">link-fail-test</fo:basic-link>| <fo:basic-link internal-destination="boostbook.dtd.run-fail-test">run-fail-test</fo:basic-link>)+)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643872"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id643876" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.header"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element header</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">header</fo:inline> <fo:inline font-family="serif">--</fo:inline> Declares a C++ header with the given name</fo:block><fo:block>header</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643955"><fo:block/>header ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id643958"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id643962" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#REQUIRED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The name of the element being declared to referenced</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block break-before="page"><fo:block id="boostbook.dtd.rationale"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"><fo:block font-family="sans-serif" font-size="18pt" font-weight="bold" space-after="1em" hyphenate="false" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" space-after.optimum="0.5em" space-after.minimum="0.4em" space-after.maximum="0.6em"><fo:block font-size="20.736pt">
          BoostBook element rationale</fo:block></fo:block><fo:block space-after="1em">
          BoostBook element <fo:inline font-family="monospace">rationale</fo:inline> <fo:inline font-family="serif">--</fo:inline> Describes the rationale for a particular function's design</fo:block><fo:block>rationale</fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id644055"><fo:block/>rationale ::= 
  (ANY)
</fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" id="id644057"><fo:block><fo:block><fo:block keep-together="always" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Attributes</fo:marker><fo:block font-size="17.28pt">Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id644061" span="none"><fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Type</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Purpose</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>last-revision</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Set to $Date: 2004/07/05 16:26:11 $ to keep "last revised" information in sync with CVS changes</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>A global identifier for this element</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>xml:base</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>#IMPLIED</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>CDATA</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Implementation detail used by XIncludes</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="titlepage" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="bbv2"><fo:block><fo:block><fo:block text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" hyphenate="false">Part&#xA0;III.&#xA0;Boost.Build v2 User Manual</fo:block></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence hyphenate="true" master-reference="lot" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Build v2 User Manual</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Build v2 User Manual</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="toc...bbv2" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:block><fo:block><fo:block space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">Table of Contents</fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.howto">How to use this document</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.howto"><fo:page-number-citation ref-id="bbv2.howto"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.installation">Installation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.installation"><fo:page-number-citation ref-id="bbv2.installation"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial">Tutorial</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial"><fo:page-number-citation ref-id="bbv2.tutorial"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.tutorial" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.hello">Hello, world</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.hello"><fo:page-number-citation ref-id="bbv2.tutorial.hello"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.properties">Properties</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.properties"><fo:page-number-citation ref-id="bbv2.tutorial.properties"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.tutorial.properties" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.properties.requirements">Build Requests and Target Requirements</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.properties.requirements"><fo:page-number-citation ref-id="bbv2.tutorial.properties.requirements"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.properties.project_attributes">Project Attributes</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.properties.project_attributes"><fo:page-number-citation ref-id="bbv2.tutorial.properties.project_attributes"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.hierarchy">Project Hierarchies</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.hierarchy"><fo:page-number-citation ref-id="bbv2.tutorial.hierarchy"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.libs">Libraries and Dependent Targets</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.libs"><fo:page-number-citation ref-id="bbv2.tutorial.libs"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.depends">Library dependencies</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.depends"><fo:page-number-citation ref-id="bbv2.tutorial.depends"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.linkage">Static and shared libaries</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.linkage"><fo:page-number-citation ref-id="bbv2.tutorial.linkage"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.conditions">Conditions and alternatives</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.conditions"><fo:page-number-citation ref-id="bbv2.tutorial.conditions"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.tutorial.prebuilt">Prebuilt targets</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.tutorial.prebuilt"><fo:page-number-citation ref-id="bbv2.tutorial.prebuilt"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced">User documentation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced"><fo:page-number-citation ref-id="bbv2.advanced"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.advanced" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.configuration">Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.configuration"><fo:page-number-citation ref-id="bbv2.advanced.configuration"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.jamfiles">Writing Jamfiles</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.jamfiles"><fo:page-number-citation ref-id="bbv2.advanced.jamfiles"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.advanced.jamfiles" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.overview">Overview</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.overview"><fo:page-number-citation ref-id="bbv2.advanced.overview"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.targets">Main targets</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.targets"><fo:page-number-citation ref-id="bbv2.advanced.targets"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.projects">Projects</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.projects"><fo:page-number-citation ref-id="bbv2.advanced.projects"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.other-rules">Additional Jamfile rules</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.other-rules"><fo:page-number-citation ref-id="bbv2.advanced.other-rules"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.project-root">Project root</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.project-root"><fo:page-number-citation ref-id="bbv2.advanced.project-root"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.build_process">Build process</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.build_process"><fo:page-number-citation ref-id="bbv2.advanced.build_process"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.advanced.build_process" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id647047">Build request</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id647047"><fo:page-number-citation ref-id="id647047"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id647094">Building a main target</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id647094"><fo:page-number-citation ref-id="id647094"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id647228">Building a project</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id647228"><fo:page-number-citation ref-id="id647228"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.builtins.targets">Builtin target types</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.builtins.targets"><fo:page-number-citation ref-id="bbv2.advanced.builtins.targets"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.advanced.builtins.targets" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id647292">Programs</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id647292"><fo:page-number-citation ref-id="id647292"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id647361">Libraries</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id647361"><fo:page-number-citation ref-id="id647361"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.builtins.alias">Alias</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.builtins.alias"><fo:page-number-citation ref-id="bbv2.builtins.alias"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.builtins.stage">Installing</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.builtins.stage"><fo:page-number-citation ref-id="bbv2.builtins.stage"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.builtins.testing">Testing</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.builtins.testing"><fo:page-number-citation ref-id="bbv2.builtins.testing"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.builtins.features">Builtin features</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.builtins.features"><fo:page-number-citation ref-id="bbv2.advanced.builtins.features"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.differences_to_v1">Differences to Boost.Build V1</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.differences_to_v1"><fo:page-number-citation ref-id="bbv2.advanced.differences_to_v1"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.advanced.differences_to_v1" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.differences_to_v1.configuration">Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.differences_to_v1.configuration"><fo:page-number-citation ref-id="bbv2.advanced.differences_to_v1.configuration"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.differences_to_v1.jamfiles">Writing Jamfiles</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.differences_to_v1.jamfiles"><fo:page-number-citation ref-id="bbv2.advanced.differences_to_v1.jamfiles"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.advanced.differences_to_v1.build_process">Build process</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.advanced.differences_to_v1.build_process"><fo:page-number-citation ref-id="bbv2.advanced.differences_to_v1.build_process"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extender">Extender Manual</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extender"><fo:page-number-citation ref-id="bbv2.extender"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.extender" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extender.intro">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extender.intro"><fo:page-number-citation ref-id="bbv2.extender.intro"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extending.targets">Target types</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extending.targets"><fo:page-number-citation ref-id="bbv2.extending.targets"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.extending.targets" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extending.scanners">Scanners</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extending.scanners"><fo:page-number-citation ref-id="bbv2.extending.scanners"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extending.tools">Tools and generators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extending.tools"><fo:page-number-citation ref-id="bbv2.extending.tools"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extending.features">Features</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extending.features"><fo:page-number-citation ref-id="bbv2.extending.features"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extending.rules">Main target rules</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extending.rules"><fo:page-number-citation ref-id="bbv2.extending.rules"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.extending.toolset_modules">Toolset modules</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.extending.toolset_modules"><fo:page-number-citation ref-id="bbv2.extending.toolset_modules"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference">Detailed reference</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference"><fo:page-number-citation ref-id="bbv2.reference"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.reference" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.general">General information</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.general"><fo:page-number-citation ref-id="bbv2.reference.general"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.reference.general" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.init">Initialization</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.init"><fo:page-number-citation ref-id="bbv2.reference.init"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.commandline">Command line</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.commandline"><fo:page-number-citation ref-id="bbv2.reference.commandline"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.jamfiles">Writing Jamfiles</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.jamfiles"><fo:page-number-citation ref-id="bbv2.reference.jamfiles"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.reference.jamfiles" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.headers">Generated headers</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.headers"><fo:page-number-citation ref-id="bbv2.reference.headers"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.buildprocess">Build process</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.buildprocess"><fo:page-number-citation ref-id="bbv2.reference.buildprocess"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.reference.buildprocess" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.buildprocess.alternatives">Alternative selection</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.buildprocess.alternatives"><fo:page-number-citation ref-id="bbv2.reference.buildprocess.alternatives"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.buildprocess.common">Determining common properties</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.buildprocess.common"><fo:page-number-citation ref-id="bbv2.reference.buildprocess.common"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.definitions"/></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.definitions"><fo:page-number-citation ref-id="bbv2.reference.definitions"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.reference.definitions" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.features">Features and properties</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.features"><fo:page-number-citation ref-id="bbv2.reference.features"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.variants">Build Variants</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.variants"><fo:page-number-citation ref-id="bbv2.reference.variants"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.variants.proprefine">Property refinement</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.variants.proprefine"><fo:page-number-citation ref-id="bbv2.reference.variants.proprefine"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.variants.propcond">Conditional properties</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.variants.propcond"><fo:page-number-citation ref-id="bbv2.reference.variants.propcond"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.ids">Target identifiers and references</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.ids"><fo:page-number-citation ref-id="bbv2.reference.ids"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.reference.generators">Generators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.reference.generators"><fo:page-number-citation ref-id="bbv2.reference.generators"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.reference.generators" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651373">Selecting and ranking viable generators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651373"><fo:page-number-citation ref-id="id651373"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651424">Running generators</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651424"><fo:page-number-citation ref-id="id651424"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651466">Selecting dependency graph</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651466"><fo:page-number-citation ref-id="id651466"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651478">Property adjustment</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651478"><fo:page-number-citation ref-id="id651478"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651542">Transformations cache</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651542"><fo:page-number-citation ref-id="id651542"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.faq">Frequently Asked Questions</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.faq"><fo:page-number-citation ref-id="bbv2.faq"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.faq" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651567">
        I'm getting "Duplicate name of actual target" error. What
        does it mean?
      </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651567"><fo:page-number-citation ref-id="id651567"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651656">
      Accessing environment variables
      </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651656"><fo:page-number-citation ref-id="id651656"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651695">
        How to control properties order?
      </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651695"><fo:page-number-citation ref-id="id651695"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651742">
      How to control the library order on Unix?
    </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651742"><fo:page-number-citation ref-id="id651742"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.faq.external">Can I get output of external program as a variable in a Jamfile?
    </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.faq.external"><fo:page-number-citation ref-id="bbv2.faq.external"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651833">How to get the project-root location?
    </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651833"><fo:page-number-citation ref-id="id651833"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="id651855">How to change compilation flags for one file?
    </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id651855"><fo:page-number-citation ref-id="id651855"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.faq.dll-path">Why are the <fo:inline font-family="monospace">dll-path</fo:inline> and
    <fo:inline font-family="monospace">hardcode-dll-paths</fo:inline> properties useful?
    </fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.faq.dll-path"><fo:page-number-citation ref-id="bbv2.faq.dll-path"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.recipies.site-config">Targets in site-config.jam</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.recipies.site-config"><fo:page-number-citation ref-id="bbv2.recipies.site-config"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.arch">B. Boost.Build v2 architecture</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.arch"><fo:page-number-citation ref-id="bbv2.arch"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.arch" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.arch.overview">Overview</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.arch.overview"><fo:page-number-citation ref-id="bbv2.arch.overview"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.arch.build">The build layer</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.arch.build"><fo:page-number-citation ref-id="bbv2.arch.build"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.arch.tools">The tools layer</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.arch.tools"><fo:page-number-citation ref-id="bbv2.arch.tools"/></fo:basic-link></fo:inline></fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.arch.targets">Targets</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.arch.targets"><fo:page-number-citation ref-id="bbv2.arch.targets"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.bbv2.bbv2.arch.targets" start-indent="48pt"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" text-align-last="justify" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="bbv2.arch.depends">Dependency scanning</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bbv2.arch.depends"><fo:page-number-citation ref-id="bbv2.arch.depends"/></fo:basic-link></fo:inline></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>How to use this document</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>How to use this document</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="bbv2.howto"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">How to use this document</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      If you've just found out about Boost.Build V2 and want to know
      if it will work for you, start with <fo:basic-link internal-destination="bbv2.tutorial"><fo:inline font-style="italic">Tutorial</fo:inline></fo:basic-link>. You can continue with the <fo:basic-link internal-destination="bbv2.advanced"><fo:inline font-style="italic">User documentation</fo:inline></fo:basic-link>. When you're ready to try Boost.Build
      in practice, go to <fo:basic-link internal-destination="bbv2.installation"><fo:inline font-style="italic">Installation</fo:inline></fo:basic-link>.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      If you are about to use Boost.Build on your project, or already
      using it and have a problem, look at <fo:basic-link internal-destination="bbv2.advanced"><fo:inline font-style="italic">User documentation</fo:inline></fo:basic-link>.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      If you're trying to build a project which uses Boost.Build,
      look at <fo:basic-link internal-destination="bbv2.installation"><fo:inline font-style="italic">Installation</fo:inline></fo:basic-link> and then read about
      <fo:basic-link internal-destination="bbv2.reference.commandline">the section called &#x201C;Command line&#x201D;</fo:basic-link>.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      If you have questions, please post them to our <fo:basic-link external-destination="http://boost.org/more/mailing_lists.htm#jamboost">mailing
      list</fo:basic-link>, and be sure to indicate in the subject line that
      you're asking about Boost.Build <fo:inline font-weight="bold">V2</fo:inline>.
    </fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Installation</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Installation</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="bbv2.installation"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Installation</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      This section describes how to install Boost.Build from a
      released source distribution. All paths are given relative to
      the <fo:inline font-style="italic">Boost.Build v2 root directory</fo:inline>, which is 

      

      located in the <fo:inline font-family="monospace">tools/build/v2</fo:inline> subdirectory
      of a full <fo:basic-link external-destination="http://www.boost.org">Boost</fo:basic-link>
      distribution.
    </fo:block><fo:list-block id="id644262" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id644268" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
          Boost.Build uses <fo:basic-link external-destination="../../tools/build/jam_src/index.html">Boost.Jam</fo:basic-link>, an
          extension of the <fo:basic-link external-destination="http://www.perforce.com/jam/jam.html">Perforce
          Jam</fo:basic-link> portable <fo:inline font-weight="bold">make</fo:inline> replacement. The
          recommended way to get Boost.Jam is to <fo:inline font-weight="bold"><fo:basic-link external-destination="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=72941">download
          a prebuilt executable</fo:basic-link></fo:inline> from SourceForge.
          If a prebuilt executable is not provided for your platform
          or you are using Boost's sources in an unreleased state, it
          may be neccessary to <fo:basic-link external-destination="../../tools/build/jam_src/index.html#building_bjam">build <fo:inline font-weight="bold">bjam</fo:inline>
          from sources</fo:basic-link> included in the Boost source tree.
        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id644327" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>

          To install Boost.Jam, copy the executable,
          called <fo:inline font-weight="bold">bjam</fo:inline>
          or <fo:inline font-weight="bold">bjam.exe</fo:inline> to a location accessible in
          your <fo:inline font-family="monospace">PATH</fo:inline>.  Go to the Boost.Build root
          directory and
          run <fo:inline font-weight="bold">bjam <fo:inline font-family="monospace">--version</fo:inline></fo:inline>. You
          should see:

          <fo:block id="id644361" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
            Boost.Build V2 (Milestone N)
            Boost.Jam xx.xx.xx 
          </fo:block>

          where N is the version of Boost.Build you're using.
        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id644370" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
          Configure Boost.Build to recognize the build resources (such
          as compilers and libraries) you have installed on your
          system.  Open the
          <fo:inline font-family="monospace">user-config.jam</fo:inline> file in the Boost.Build
          root directory and follow the instructions there to describe
          your toolsets and libraries, and, if neccessary, where they
          are located.
        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id644387" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
          You should now be able to go to the
          <fo:inline font-family="monospace">example/hello/</fo:inline> directory and run
          <fo:inline font-weight="bold">bjam</fo:inline> there. A simple application will be
          built. You can also play with other projects in the
          <fo:inline font-family="monospace">example/</fo:inline> directory. 
    </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      If you are using Boost's CVS state, be sure to
      rebuild <fo:inline font-weight="bold">bjam</fo:inline> even if you have a previous
      version.  The CVS version of Boost.Build requires the CVS
      version of Boost.Jam.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      When <fo:inline font-weight="bold">bjam</fo:inline> is invoked, it always needs to be
      able to find the Boost.Build root directory, where the
      interpreted source code of Boost.Build is located.  There are
      two ways to tell <fo:inline font-weight="bold">bjam</fo:inline> about the root directory:
    </fo:block><fo:list-block id="id644445" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id644447" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
          Set the environment variable <fo:inline font-family="monospace">BOOST_BUILD_PATH</fo:inline>
          to the absolute path of the Boost.Build root directory.
        </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id644457" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
          At the root directory of your project or in any of its
          parent directories, create a file called
          <fo:inline font-family="monospace">boost-build.jam</fo:inline>, with a single line:

<fo:block id="id644470" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
boost-build <fo:inline font-style="italic" font-family="monospace">/path/to/boost.build</fo:inline> ;
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">N.B.</fo:inline>
  When <fo:inline font-weight="bold">bjam</fo:inline> is invoked from anywhere in the Boost
  directory tree <fo:inline font-style="italic">other than</fo:inline> the Boost.Build root
  and its subdirectories, <fo:basic-link external-destination="../../tools/build">Boost.Build
  v1</fo:basic-link> is used by default. To override the default and use
  Boost.Build v2, you have to add the <fo:inline font-family="monospace">--v2</fo:inline> command
  line option to all <fo:inline font-weight="bold">bjam</fo:inline> invocations.</fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body-draft" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block>Draft</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block>Draft</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block>Draft</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Tutorial</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block>Draft</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block>Draft</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Tutorial</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block>Draft</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="bbv2.tutorial"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Tutorial</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="bbv2.tutorial.hello"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Hello, world</fo:marker><fo:block font-size="20.736pt">Hello, world</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The simplest project that Boost.Build can construct is
      stored in <fo:inline font-family="monospace">example/hello/</fo:inline> directory. The
      project is described by a file
      called <fo:inline font-family="monospace">Jamfile</fo:inline> that contains:

<fo:block id="id644560" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe hello : hello.cpp ;
</fo:block>

      Even with this simple setup, you can do some interesting
      things. First of all, just invoking <fo:inline font-weight="bold">bjam</fo:inline> will
      build the debug variant of the <fo:inline font-weight="bold">hello</fo:inline>
      executable by compiling and
      linking <fo:inline font-family="monospace">hello.cpp</fo:inline>.  Now, to build the
      release variant of <fo:inline font-weight="bold">hello</fo:inline>, invoke

<fo:block id="id644597" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam release
</fo:block>

      Note that debug and release variants are created in different
      directories, so you can switch between variants or even build
      multiple variants at once, without any unneccessary
      recompilation. Let's extend the example by adding another line
      to our project's <fo:inline font-family="monospace">Jamfile</fo:inline>:

<fo:block id="id644615" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe hello2 : hello.cpp ;
</fo:block>

      Now we can build both the debug and release variants of our
      project:

<fo:block id="id644624" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam debug release
</fo:block>

      Note that two variants of <fo:inline font-weight="bold">hello2</fo:inline> are linked.
      Since we have already built both variants
      of <fo:inline font-weight="bold">hello</fo:inline>, hello.cpp won't be recompiled;
      instead the existing object files will just be linked into the
      corresponding variants of <fo:inline font-weight="bold">hello2</fo:inline>. Now 
      let's remove all the built products:

<fo:block id="id644652" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam --clean debug release
</fo:block>

      It's also possible to build or clean specific targets.  The
      following two commands, respectively, build or clean only the
      debug version of <fo:inline font-weight="bold">hello2</fo:inline>.

<fo:block id="id644668" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam hello2
bjam --clean hello2
</fo:block></fo:block></fo:block><fo:block id="bbv2.tutorial.properties"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Properties</fo:marker><fo:block font-size="20.736pt">Properties</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      To portably represent aspects of target configuration such as
      debug and release variants, or single- and multi-threaded
      builds, Boost.Build uses <fo:inline font-style="italic">features</fo:inline> with
      associated <fo:inline font-style="italic">values</fo:inline>.  For
      example, the "debug-symbols" feature can have a value of "on" or
      "off".  A <fo:inline font-style="italic">property</fo:inline> is just a (feature,
      value) pair.  When a user initiates a build, Boost.Build
      automatically translates the requested properties into appropriate
      command-line flags for invoking toolset components like compilers
      and linkers.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There are many built-in features that can be combined to
      produce arbitrary build configurations.  The following command
      builds the project's "release" variant with inlining
      disabled and debug symbols enabled:

<fo:block id="id644713" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam release inlining=off debug-symbols=on
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Properties on the command-line are specified with the syntax:

<fo:block id="id644723" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-style="italic" font-family="monospace">feature-name</fo:inline>=<fo:inline font-style="italic" font-family="monospace">feature-value</fo:inline></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The "release" and "debug" that we've seen
      in <fo:inline font-weight="bold">bjam</fo:inline> invocations are just a shorthand way to
      specify values of the "variant" feature.  For example, the command
      above could also have been written this way:

      <fo:block id="id644746" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam variant=release inlining=off debug-symbols=on
      </fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  "variant" is so commonly-used that it has been given
      special status as an <fo:inline font-style="italic">implicit</fo:inline> feature
      &#x2014; Boost.Build will deduce the its identity just from the name
      of one of its values.  
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      A complete description of features can be found
      <fo:basic-link internal-destination="bbv2.reference.features">here</fo:basic-link>. 
    </fo:block><fo:block id="bbv2.tutorial.properties.requirements"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Build Requests and Target Requirements</fo:marker><fo:block font-size="17.28pt">Build Requests and Target Requirements</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">      
        The set of properties specified in the command line constitute a
        <fo:inline font-style="italic">build request</fo:inline> &#x2014; a description of
        the desired properties for building the requested targets (or,
        if no targets were explicitly requested, the project in the
        current directory).  The <fo:inline font-style="italic">actual</fo:inline> properties
        used for building targets is typically a combination of the
        build request and properties derived from the
        project's <fo:inline font-family="monospace">Jamfile</fo:inline>s.  For example, the
        locations of <fo:inline font-family="monospace">#include</fo:inline>d header files are normally
        not specified on the command-line, but described
        in <fo:inline font-family="monospace">Jamfile</fo:inline>s as <fo:inline font-style="italic">target
          requirements</fo:inline> and automatically combined with the
        build request for those targets.  Multithread-enabled
        compilation is another example of a typical target requirement.
        The <fo:inline font-family="monospace">Jamfile</fo:inline> fragment below illustrates how
        these requirements might be specified.
      </fo:block><fo:block id="id644845" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe hello 
    : hello.cpp
    : &lt;include&gt;/home/ghost/Work/boost &lt;threading&gt;multi
    ;
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> 
        When <fo:inline font-family="monospace">hello</fo:inline> is built, the two
        requirements specified above will normally always be present.
        If the build request given on the <fo:inline font-weight="bold">bjam</fo:inline>
        command-line explictly contradicts a target's requirements,
        the command-line usually overrides (or, in the case of
        "free" feautures like <fo:inline font-family="monospace">&lt;include&gt;</fo:inline><fo:footnote><fo:inline><fo:inline font-size="75%" vertical-align="super">1</fo:inline> </fo:inline><fo:footnote-body font-family="serif,Symbol,ZapfDingbats" font-size="8pt" font-weight="normal" font-style="normal" text-align="justify" margin-left="0pc">See <fo:basic-link internal-destination="bbv2.reference.features.attributes">the section called &#x201C;Feature Attributes&#x201D;</fo:basic-link></fo:footnote-body></fo:footnote>,
        augments) the target requirements.  
</fo:block></fo:block><fo:block id="bbv2.tutorial.properties.project_attributes"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Project Attributes</fo:marker><fo:block font-size="17.28pt">Project Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        If we want the same requirements for our other
        target, <fo:inline font-family="monospace">hello2</fo:inline>, we could simply duplicate
        them.  However, as projects grow, that approach leads to a great
        deal of repeated boilerplate in Jamfiles.
        
        Fortunately, there's a better way. Each project (i.e. each
        <fo:inline font-family="monospace">Jamfile</fo:inline>), can specify a set of <fo:inline font-style="italic">attributes</fo:inline>,
        including requirements:

<fo:block id="id644928" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
project 
    : requirements &lt;include&gt;/home/ghost/Work/boost &lt;threading&gt;multi 
    ;

exe hello : hello.cpp ;
exe hello2 : hello.cpp ;
</fo:block>

        The effect would be as if we specified the same requirement for
        both <fo:inline font-weight="bold">hello</fo:inline> and <fo:inline font-weight="bold">hello2</fo:inline>.
      </fo:block></fo:block></fo:block><fo:block id="bbv2.tutorial.hierarchy"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Project Hierarchies</fo:marker><fo:block font-size="20.736pt">Project Hierarchies</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">So far we've only considered examples with one project
      (i.e. with one <fo:inline font-family="monospace">Jamfile</fo:inline>). A typical large
      software project would be composed of sub-projects organized
      into a tree. The top of the tree is called the
      <fo:inline font-style="italic">project root</fo:inline>.  Besides a
      <fo:inline font-family="monospace">Jamfile</fo:inline>, the project root directory
      contains a file called <fo:inline font-family="monospace">project-root.jam</fo:inline>. Every other
      <fo:inline font-family="monospace">Jamfile</fo:inline> in the project has a single parent
      project, rooted in the nearest parent directory containing a
      <fo:inline font-family="monospace">Jamfile</fo:inline>. For example, in the following
      directory layout:

<fo:block id="id645012" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
top/ 
  |
  +-- Jamfile
  +-- project-root.jam
  |
  +-- src/
  |    |
  |    +-- Jamfile
  |    `-- app.cpp
  | 
  `-- util/
       |
       +-- foo/
       .    |
       .    +-- Jamfile
       .    `-- bar.cpp
</fo:block>

      the project root is <fo:inline font-family="monospace">top/</fo:inline>.  Because there is
      no <fo:inline font-family="monospace">Jamfile</fo:inline> in
      <fo:inline font-family="monospace">top/util/</fo:inline>, the projects in
      <fo:inline font-family="monospace">top/src/</fo:inline> and
      <fo:inline font-family="monospace">top/util/foo/</fo:inline> are immediate children of the
      root project.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Projects inherit all attributes (such as requirements)
      from their parents.  Inherited requirements are combined with
      any requirements specified by the sub-project.  
      For example, if <fo:inline font-family="monospace">top/Jamfile</fo:inline> has

<fo:block id="id645070" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
&lt;include&gt;/home/ghost/local
</fo:block>

      in its requirements, then all of its sub-projects will have it
      in their requirements, too.  Of course, any project can add
      additional includes. <fo:footnote><fo:inline><fo:inline font-size="75%" vertical-align="super">2</fo:inline> </fo:inline><fo:footnote-body font-family="serif,Symbol,ZapfDingbats" font-size="8pt" font-weight="normal" font-style="normal" text-align="justify" margin-left="0pc">Many features will be overridden,
      rather than added-to, in sub-projects.  See <fo:basic-link internal-destination="bbv2.reference.features.attributes">the section called &#x201C;Feature Attributes&#x201D;</fo:basic-link> for more
      information</fo:footnote-body></fo:footnote> More details can be found in the section
      on <fo:basic-link internal-destination="bbv2.advanced.projects">projects</fo:basic-link>.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Invoking <fo:inline font-weight="bold">bjam</fo:inline> without explicitly specifying
      any targets on the command-line builds the project rooted in the
      current directory.  Building a project does not automatically
      cause its sub-projects to be built unless the parent project's
      <fo:inline font-family="monospace">Jamfile</fo:inline> explicitly requests it. In our
      example, <fo:inline font-family="monospace">top/Jamfile</fo:inline> might contain:

<fo:block id="id645133" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
build-project src ;
</fo:block>

      which would cause the project in <fo:inline font-family="monospace">top/src/</fo:inline>
      to be built whenever the project in <fo:inline font-family="monospace">top/</fo:inline> is
      built. However, targets in <fo:inline font-family="monospace">top/util/foo/</fo:inline>
      will be built only if they are needed by targets in
      <fo:inline font-family="monospace">top/</fo:inline> or <fo:inline font-family="monospace">top/src/</fo:inline>.
    </fo:block></fo:block><fo:block id="bbv2.tutorial.libs"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Libraries and Dependent Targets</fo:marker><fo:block font-size="20.736pt">Libraries and Dependent Targets</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block font-style="italic">TODO: need to make this
      section consistent with "examples-v2/libraries".</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Targets that are "needed" by other targets are called
      <fo:inline font-style="italic">dependencies</fo:inline> of those other targets.  The
      targets that need the other targets are called
      <fo:inline font-style="italic">dependent</fo:inline> targets.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To get a feeling of target dependencies, let's continue the
      above example and see how <fo:inline font-family="monospace">src/Jamfile</fo:inline> can
      use libraries from <fo:inline font-family="monospace">util/foo</fo:inline>.  Assume
      util/foo/Jamfile contains:

<fo:block id="id645221" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib bar : bar.cpp ;
</fo:block>

      Then, to use this library in <fo:inline font-family="monospace">src/Jamfile</fo:inline>, we can write:

<fo:block id="id645235" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe app : app.cpp ../util/foo//bar ;
</fo:block>

      While <fo:inline font-family="monospace">app.cpp</fo:inline> refers to a regular source file,
      <fo:inline font-family="monospace">../util/foo//bar</fo:inline> is a reference to another target:
      a library "bar" declared in the <fo:inline font-family="monospace">Jamfile</fo:inline> at
      <fo:inline font-family="monospace">../util/foo</fo:inline>.  When linking the
      <fo:inline font-weight="bold">app</fo:inline> executable, the appropriate version of
      <fo:inline font-family="monospace">bar</fo:inline> will be built and linked in. What do we mean by
      "appropriate"? For example, suppose we build "app" with:

<fo:block id="id645287" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam app optimization=full cxxflags=-w-8080
</fo:block>

      Which properties must be used to build <fo:inline font-family="monospace">foo</fo:inline>? The
      answer is that some properties are
      <fo:inline font-style="italic">propagated</fo:inline> &#x2014; Boost.Build attempts to
      use dependencies with the same value of propagated features. The
      &lt;optimization&gt; feature is propagated, so both "app" and
      "foo" will be compiled with full optimization. But
      &lt;cxxflags&gt; feature is not propagated: its value will be
      added as-is to compiler flags for "a.cpp", but won't affect
      "foo". There is still a couple of problems. First, the library
      probably has some headers which must be used when compiling
      "app.cpp". We could use requirements on "app" to add those
      includes, but then this work will be repeated for all programs
      which use "foo". A better solution is to modify
      util/foo/Jamfilie in this way:

<fo:block id="id645355" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
project 
    : usage-requirements &lt;include&gt;.
    ;

lib foo : foo.cpp ;
</fo:block>

      Usage requirements are requirements which are applied to
      dependents. In this case, &lt;include&gt; will be applied to all
      targets which use "foo" &#x2014; i.e. targets which have "foo"
      either in sources or in dependency properties. You'd need to
      specify usage requirements only once, and programs which use "foo"
      don't have to care about include paths any longer. Or course, the
      path will be interpreted relatively to "util/foo" and will be
      adjusted according to the <fo:inline font-weight="bold">bjam</fo:inline>s invocation
      directory. For
      example, if building from project root, the final compiler's
      command line will contain <fo:inline font-family="monospace">-Ilib/foo</fo:inline>.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The second problem is that we hardcode the path to library's
      Jamfile. Imagine it's hardcoded in 20 different places and we
      change the directory layout. The solution is to use project ids
      &#x2014; symbolic names, not tied to directory layout. First, we
      assign a project id to Jamfile in util/foo:</fo:block><fo:block id="id645403" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
project foo
    : usage-requirements &lt;include&gt;.
    ;
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Second, we use the project id to refer to the library in
      src/Jamfile:

<fo:block id="id645414" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe app : app.cpp /foo//bar ;
</fo:block>

      The "/foo//bar" syntax is used to refer to target "foo" in
      project with global id "/foo" (the slash is used to specify global
      id). This way, users of "foo" do not depend on its location, only
      on id, which is supposedly stable. The only thing left, it to make
      sure that src/Jamfile knows the project id that it uses. We add to
      top/Jamfile the following line:

<fo:block id="id645427" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
use-project /foo : util/foo ;
</fo:block>

      Now, all projects can refer to "foo" using the symbolic
      name. If the library is moved somewhere, only a single line in the
      top-level Jamfile should be changed.
    </fo:block></fo:block><fo:block id="bbv2.tutorial.depends"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Library dependencies</fo:marker><fo:block font-size="20.736pt">Library dependencies</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The previous example was simple. Often, there are long chains
      of dependencies between libraries. The main application is a thin
      wrapper on top of library with core logic, which uses library of
      utility functions, which uses boost filesystem library.
      Expressing these dependencies is straightforward:</fo:block><fo:block id="id645454" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib utils : utils.cpp /boost/filesystem//fs ;   
lib core : core.cpp utils ;
exe app : app.cpp core ;
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">So, what's the reason to even mention this case? First,
      because it's a bit more complex that it seems. When using shared
      linking, libraries are build just as written, and everything will
      work. However, what happens with static linking? It's not
      possible to include another library in static library.
      Boost.Build solves this problem by returning back library targets
      which appear as sources for static libraries. In this case, if
      everything is built statically, the "app" target will link not
      only "core" library, but also "utils" and
      "/boost/filesystem//fs".</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">So, the net result is that the above code will work for both
      static linking and for shared linking.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sometimes, you want all applications in some project to link
      to a certain library. Putting the library in sources of all
      targets is possible, but verbose. You can do better by using the
      &lt;source&gt; property. For example, if "/boost/filesystem//fs"
      should be linked to all applications in your project, you can add
      &lt;source&gt;/boost/filesystem//fs to requirements of the
      project, like this:</fo:block><fo:block id="id645497" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
project 
   : requirements &lt;source&gt;/boost/filesystem//fs
   ;   
</fo:block></fo:block><fo:block id="bbv2.tutorial.linkage"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Static and shared libaries</fo:marker><fo:block font-size="20.736pt">Static and shared libaries</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">While the
      previous section explained how to create and use libraries, it
      omitted one important detail. Libraries can be either
      <fo:inline font-style="italic">static</fo:inline>, which means they are included in executable
      files which use them, or <fo:inline font-style="italic">shared</fo:inline> (a.k.a.
      <fo:inline font-style="italic">dynamic</fo:inline>), which are only referred to from executables,
      and must be available at run time. Boost.Build can work with both
      types. By default, all libraries are shared. This is much more
      efficient in build time and space. But the need to install all
      libraries to some location is not always convenient, especially
      for debug builds. Also, if the installed shared library changes,
      all application which use it might start to behave differently.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Static libraries do not suffer from these problems, but
      considerably increase the size of application. Before describing
      static libraries, it's reasonable to give another, quite simple
      approach. If your project is built with
      &lt;hardcode-dll-paths&gt;true property, then the application
      will include the full paths for all shared libraries, eliminating
      the above problems. Unfortunately, you no longer can move shared
      library to a different location, which makes this option suitable
      only for debug builds. Further, only gcc compiler supports this
      option.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Building a library statically is easy. You'd need to change
      the value of &lt;link&gt; feature from it's deafault value
      <fo:inline font-family="monospace">shared</fo:inline>, to <fo:inline font-family="monospace">static</fo:inline>. So, to build everything as
      static libraries, you'd say</fo:block><fo:block id="id645582" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam link=static
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      on the command line. The linking mode can be fine-tuned on
      per-target basis.

      <fo:list-block id="id645592" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id645598" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            Suppose your library can be only build statically. This is
            easily achieved using requirements:

<fo:block id="id645604" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib l : l.cpp : &lt;link&gt;static ;
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id645609" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            What if library can be both static and shared, but when
            using it in specific executable, you want it static?
            <fo:basic-link internal-destination="bbv2.reference.targets.references">Target
              references</fo:basic-link> are here to help:

<fo:block id="id645628" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe important : main.cpp helpers/&lt;link&gt;static ;
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id645634" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            What if the library is defined in some other project, which
            you cannot change. But still, you want static linking to that
            library in all cases. You can use target references everywhere:

<fo:block id="id645642" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe e1 : e1.cpp /other_project//bar/&lt;link&gt;static ;
exe e10 : e10.cpp /other_project//bar/&lt;link&gt;static ;
</fo:block>

            but that's far from being convenient. Another way is to
            introduce a level of indirection: create a local target, which will
            refer to static version of <fo:inline font-family="monospace">foo</fo:inline>. Here's the
            solution:

<fo:block id="id645662" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
alias foo : /other_project//bar/&lt;link&gt;static ;
exe e1 : e1.cpp foo ;
exe e10 : e10.cpp foo ;
</fo:block>

            Note that the <fo:basic-link internal-destination="bbv2.builtins.alias">alias</fo:basic-link> 
            rule is specifically used for rename a reference to a target and possibly
            change the properties.

          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="bbv2.tutorial.conditions"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Conditions and alternatives</fo:marker><fo:block font-size="20.736pt">Conditions and alternatives</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As we've just figured out, properties can significally affect the
      way targets are built. The processing of the &lt;link&gt; feature is
      built in the build system, and is quite complex. But there is a couple
      of mechanisms which allow ordinary users to do different things 
      depending on properties.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The first mechanism is called <fo:inline font-style="italic">conditinal
        requirement</fo:inline>. For example, you might want to set specific
      defines when the library is build as shared, or you have your own define
      to be used in release mode. Here's a piece of Jamfile.
<fo:block id="id645722" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib network : network.cpp 
    : &lt;link&gt;shared:&lt;define&gt;NEWORK_LIB_SHARED 
      &lt;variant&gt;release:&lt;define&gt;EXTRA_FAST
    ;
</fo:block>
      This will have exactly the effect we wanted: whenever &lt;link&gt;shared
      is in properties, &lt;define&gt;NEWORK_LIB_SHARED will be in properties
      as well.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Sometimes different variant of a target are so different, that
      describing them using conditional requirements would be hard. Imagine
      that a library has different sources on two supported toolsets, and
      dummy implementation for all the other toolset. We can express this
      situation using <fo:inline font-style="italic">target alternatives</fo:inline>:
<fo:block id="id645752" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib demangler : dummy_demangler.cpp ;
lib demangler : demangler_gcc.cpp : &lt;toolset&gt;gcc ;
lib demangler : demangler_msvc.cpp : &lt;toolset&gt;msvc ;
</fo:block>
      The proper alternative will be automatically selected. 
    </fo:block></fo:block><fo:block id="bbv2.tutorial.prebuilt"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Prebuilt targets</fo:marker><fo:block font-size="20.736pt">Prebuilt targets</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      We've just learned how to use libraries which are created by
      Boost.Build. But some libraries are not. At the same time, those
      libraries can have different versions (release and debug, for
      example), that we
      should select depending on build properties. Prebuilt targets
      provide a mechanism for that. Jamfile in util/lib2 can contain:

<fo:block id="id645780" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib lib2
    : 
    : &lt;file&gt;lib2_release.a &lt;variant&gt;release
    ;

lib lib2
    : 
    : &lt;file&gt;lib2_debug.a &lt;variant&gt;debug
    ;
</fo:block>

      This defines two alternatives for target "lib2", and for each
      one names a prebuilt file. Naturally, there are no sources.
      Instead, the &lt;file&gt; feature is used to specify the file name.
      Which alternative is selected depends on properties of dependents.
      If "app" binary should use "lib2", we can write:

<fo:block id="id645812" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe app : app.cpp ../util/lib2//lib2 ;
</fo:block>

      If we build release version of "app", then it will be linked
      with "lib2_release.a", and debug version will use "lib2_debug.a".
      Another important kind of prebuilt targets are system libraries
      &#x2014; more specifically, libraries which are automatically found
      by the compiler. E.g. gcc uses "-l" switch for that. Such libraries
      should be declared almost like regular ones:

<fo:block id="id645827" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib zlib : : &lt;name&gt;z ;
</fo:block>

      We again don't specify any sources, but give a name which
      should be passed to the compiler. In this example, and for gcc
      compiler, the "-lz" option will be added. Paths where library
      should be searched can also be specified:

<fo:block id="id645838" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib zlib : : &lt;name&gt;z &lt;search&gt;/opt/lib ;
</fo:block>

      And, of course, two variants can be used:

<fo:block id="id645847" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib zlib : : &lt;name&gt;z &lt;variant&gt;release ;
lib zlib : : &lt;name&gt;z_d &lt;variant&gt;debug ;
</fo:block>

      Of course, you'll probably never in your life need debug
      version of zlib, but for other libraries this is quite reasonable.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">More advanced use of prebuilt target is described in <fo:basic-link internal-destination="bbv2.recipies.site-config">a FAQ entry</fo:basic-link>.</fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>User documentation</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>User documentation</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="bbv2.advanced"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">User documentation</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This section will provide the information necessary to create your own
  projects using Boost.Build. The information provided here is relatively
  high-level, and <fo:basic-link internal-destination="bbv2.reference">detailed reference</fo:basic-link> as
  well as the on-line help system must be used to obtain
  low-level documentation (see the <fo:basic-link internal-destination="bbv2.reference.init.options.help">help option</fo:basic-link>).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The Boost.Build actually consists of two parts - Boost.Jam, which is a
  build engine with its own interpreted language, and Boost.Build itself,
  implemented in Boost.Jam's language. The chain of event which happen when
  you type "bjam" on the command is:
      <fo:list-block id="id645919" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id645925" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Boost.Jam tries to find Boost.Build and loads the top-level
          module. The exact process is described in the <fo:basic-link internal-destination="bbv2.reference.init">section on
          initialization</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id645940" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Boost.Build top-level module loads user-defined configuration
          files, "user-config.jam" and "site-config.jam", which define
          available toolsets.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id645946" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The Jamfile in the current directory is read. That in turn
          might cause reading of further Jamfiles. As a result, a tree of
          projects is created, with targets inside projects.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id645953" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Finally, using build request specified on the command line,
          Boost.Build decides which targets should be built, and how. That
          information is passed back to Boost.Jam, which takes care of
          actually running commands.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">So, to be able to successfully use Boost.Build, you'd need to know only
      three things:
      <fo:list-block id="id645965" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id645966" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="bbv2.advanced.configuration">
              How to configure Boost.Build</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id645978" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="bbv2.advanced.jamfiles">
              How to write Jamfiles</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id645990" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="bbv2.advanced.build_process">
              How the build process works</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="bbv2.advanced.configuration"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Configuration</fo:marker><fo:block font-size="20.736pt">Configuration</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The Boost.Build configuration is specified in the file
    "user-config.jam". You can edit the one which comes with Boost.Build, or
    create a copy in your home directory and edit that. (See the <fo:basic-link internal-destination="bbv2.reference.init.config">reference</fo:basic-link> for the exact search
    paths.) The primary function of that file is to declarate which compilers
    and other tools are available. The simplest syntax to configure a tool is:
<fo:block id="id646030" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
using &lt;tool-name&gt; ;        
</fo:block>
      The "using" rule is given a name of tool, and will make that tool
      available to Boost.Build. For example, "using gcc ;" will make available
      the gcc compiler.      
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Since nothing but tool name is specified, Boost.Build will pick some
      default settings -- for example will use gcc found in path, or look in
      some known installation locations. For ordinary users, this is quite
      fine. In case you have several version of a compiler, or it's located in
      some unusual location, or you need to tweak the configuration, you'd
      need to pass additional parameters to the "using" rule. Generally, 
      for every tool module, the parameters differ, and you can obtain the documentaiton
      by running
<fo:block id="id646052" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam --help &lt;tool-name&gt;.init         
</fo:block>
      on the command line. However, for all compilers the meaning of the first
      three parameters is the same: version, invocation command and options.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The "version" parameter identifies the compiler, in case you have
    several. It can have any form you like, but it's recommended that you use
    a numeric identifier, like "7.1". The "invocation command"
    parameter is the command which must be executed to run the compiler. This
    might be just compiler name, or a name with a path in it. Here are some
    examples. 
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To configure a compiler installed in non-standard location and not
    present in path, you can do the following:
<fo:block id="id646077" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
using msvc : : Z:/Programs/Microsoft Visual Studio/vc98/bin/cl.exe ;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To configure several versions of a compiler, the following can be used.
<fo:block id="id646087" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
using gcc : 3.3 ;
using gcc : 3.4 : g++-3.4 ;
using gcc : 3.2 : g++-3.2 ;
</fo:block>
        Note that in the first call to "using", the compiler found in path
      will be used, and there's no need to explicitly specify the command.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As shown above, both "version" and "invocation command" parameters
      are optional, but there's an important restriction: if you configure the
      same compiler more then once, you must pass the "version" parameter
      every time. For example, the following is not allowed:
<fo:block id="id646104" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
using gcc ;
using gcc : 3.4 : g++-3.4 ;
</fo:block>
      because the first "using" does not specify the version. 
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">options</fo:inline> parameter is used to fine-tune the
      configuration. All compilers allow to pass four option, intentionally
      similiar in spelling to builtin features: <fo:inline font-family="monospace">cflags</fo:inline>,
      <fo:inline font-family="monospace">cxxflags</fo:inline>, <fo:inline font-family="monospace">compileflags</fo:inline> and
      <fo:inline font-family="monospace">linkflags</fo:inline>. They specify additional options which will be
      always passed to the corresponding tools. The <fo:inline font-family="monospace">cflags</fo:inline> option
      applies only to the C compiler, the <fo:inline font-family="monospace">cxxflags</fo:inline> option applies
      only to the C++ compiler and the <fo:inline font-family="monospace">compileflags</fo:inline> options
      applies to both. For example, to use 64 bit mode with gcc you can use:
<fo:block id="id646176" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
using gcc : 3.4 : : &lt;compileflags&gt;-m64 &lt;linkflags&gt;-m64 ;
</fo:block></fo:block></fo:block><fo:block id="bbv2.advanced.jamfiles"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Writing Jamfiles</fo:marker><fo:block font-size="20.736pt">Writing Jamfiles</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="bbv2.advanced.overview"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Overview</fo:marker><fo:block font-size="17.28pt">Overview</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Jamfiles are the thing which is most important to the user,
      bacause they declare the targets which should be build. Jamfiles are
      also used for organizing targets -- each Jamfile is a separate project,
      which can be build independently from the other projects.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Jamfile mostly contain calls to Boost.Build functions, which do
        all the work, specifically:
        <fo:list-block id="id646211" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id646213" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="bbv2.advanced.targets">declare main
                targets</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id646224" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="bbv2.advanced.projects">define
            project properties</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id646233" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:basic-link internal-destination="bbv2.advanced.other-rules">do various other
            things</fo:basic-link></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In addition to Jamfiles, Boost.Build has another user-editable
        file, project-root.jam, which is mostly useful to declare constants
        global to all the projects. It is described in more detail <fo:basic-link internal-destination="bbv2.advanced.project-root">below</fo:basic-link>.
      </fo:block></fo:block><fo:block id="bbv2.advanced.targets"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Main targets</fo:marker><fo:block font-size="17.28pt">Main targets</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="bbv2.advanced.targets.main"><fo:inline font-style="italic">Main target</fo:inline> is a user-defined named
        entity which can be build, for example a named executable file.
        Declaring a main target is usually done using one of <fo:basic-link internal-destination="bbv2.advanced.builtins.targets">main target functions</fo:basic-link>.  The
        user can also declare <fo:basic-link internal-destination="bbv2.extending.rules"> custom
        main target function</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Most main targets rules in Boost.Build use similiar
        syntax:</fo:block><fo:wrapper id="bbv2.main-target-rule-syntax"/><fo:block id="id646315" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
function-name main-target-name 
    : sources 
    : requirements 
    : default-build 
    : usage-requirements 
    ;
</fo:block><fo:list-block id="id646320" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id646321" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            "main-target-name" is the name used to request the target
            on command line and to use it from other main targets. Main
            target name may contain alphanumeric characters and symbols '-'
            and '_';
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id646329" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            "sources" is the list of source files and other main
            targets that must be combined. 
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id646335" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            "requirements" is the list of properties that must always
            be present when this main target is built.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id646341" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            "default-build" is the list of properties that will be used
            unless some other value of the same feature is already
            specified.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id646348" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            "usage-requirements" is the list of properties that will be
            propagated to all main targets that use this one, i.e. to all
            dependents.
          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note that the actual requirements, default-build and
        usage-requirements attributes for a target are obtained by combining
        the explicitly specified one with those specified for the project
        where a target is declared.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">          
        Some main target rules have shorter list of parameters, and
        you should consult their documentation for details.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The list of sources specifies what should be processed to get
        the resulting targets. Most of the time, it's just a list of
        files. Sometimes, you'd want to use all files with the same
        extension as sources, in which case you can use the "glob"
        rule. Here are two examples:
<fo:block id="id646374" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe a : a.cpp ;
exe b : [ glob *.cpp ] ;
</fo:block>
        Unless you specify a files with absolute path, the name is
        considered relative to the source directory -- which is typically
        the same as directory when Jamfile is located, but can be changed as
        described <fo:basic-link internal-destination="bbv2.advanced.projects.attributes.projectrule">here</fo:basic-link></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        The list of sources can also reference other main targets. The
        targets in the same project can be referred by using the name, and
        targets in other project need to specify directory or a symbolic
        name of the other project. For example:
<fo:block id="id646402" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib helper : helper.cpp ;
exe a : a.cpp helper ;
exe b : b.cpp ..//utils ;
exe c : c.cpp /boost/program_options//program_opions ;
</fo:block>
        The first exe uses the library defined in the same project. The
        second one uses some target (most likely library) defined by Jamfile
        one level higher. Finally, the third target uses some <fo:basic-link external-destination="http://boost.org">C++ Boost</fo:basic-link> library, using the
        symbolic name to refer to it. More information about it can be found
        in <fo:basic-link internal-destination="bbv2.tutorial.libs">tutorial</fo:basic-link> and in 
        <fo:basic-link internal-destination="bbv2.reference.ids">target id reference</fo:basic-link>.          
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Requirements are the properties that should always be present when
        building a target. Typically, they are includes and defines:
<fo:block id="id646448" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe hello : hello.cpp : &lt;include&gt;/opt/boost &lt;define&gt;MY_DEBUG ;
</fo:block>
        In special circumstances, other properties can be used, for example if
        a library does not work if it's shared, or a file can't be compiled
        with optimization due to a compiler bug, one can use
<fo:block id="id646461" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib util : util.cpp : &lt;link&gt;static ;
obj main : main.cpp : &lt;optimization&gt;off ;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sometimes, requirements are necessary only for a specific
        compiler, or build variant. The 
        <fo:basic-link internal-destination="bbv2.reference.variants.propcond">conditional
        properties</fo:basic-link> can be used in that case:
<fo:block id="id646484" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib util : util.cpp : &lt;toolset&gt;msvc:&lt;link&gt;static ;
</fo:block>
        In means when whenever <fo:inline font-family="monospace">&lt;toolset&gt;msvc</fo:inline> property is
        in build properties, the <fo:inline font-family="monospace">&lt;link&gt;static</fo:inline> property will
        be included as well. The conditional requirements can be "chained":
<fo:block id="id646509" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib util : util.cpp : &lt;toolset&gt;msvc:&lt;link&gt;static 
                      &lt;link&gt;static:&lt;define&gt;STATIC_LINK ;
</fo:block>
        will set of static link and the <fo:inline font-family="monospace">STATIC_LINK</fo:inline> define on the
        <fo:inline font-family="monospace">msvc</fo:inline> toolset.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The default-build attribute is
        a set of properties which should be used if build request does not
        specify a value. For example:
<fo:block id="id646537" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe hello : hello.cpp : : &lt;threading&gt;multi ;
</fo:block>
        would build the target in multi-threaded mode, unless the user
        explicitly requests single-threaded version. The difference between
        requirements and default-build is that requirements cannot be
        overriden in any way.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A target of the same name can be declared several times. In that
        case is declaration is called an
        <fo:inline font-style="italic">alternative</fo:inline>. When the target is build, one of
        the alternatives will be selected and use. Alternatives need not be
        defined by the same main target rule. The following is OK:
<fo:block id="id646561" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib helpers : helpers.hpp ;
alias helpers : helpers.lib : &lt;toolset&gt;msvc ;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Building of the same main target can differ greatly from
        platform to platform. For example, you might have different list
        of sources for different compilers, or different options for those
        compilers. Two approaches to this are explained in the 
        <fo:basic-link internal-destination="bbv2.tutorial.conditions">tutorial</fo:basic-link>.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sometimes a main target is really needed only by some other main
        target. For example, a rule that declares a test-suite uses a main
        target that represent test, but those main targets are rarely needed
        by themself.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It is possible to declare target inline, i.e. the "sources"
        parameter may include call to other main rules. For example:</fo:block><fo:block id="id646598" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe hello : hello.cpp 
    [ obj helpers : helpers.cpp : &lt;optimization&gt;off ] ;
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        Will cause "helpers.cpp" to be always compiled without
        optimization. It's possible to request main targets declared
        inline, but since they are considered local, they are renamed to
        "parent-main-target_name..main-target-name". In the example above,
        to build only helpers, one should run "bjam hello..helpers".
      </fo:block></fo:block><fo:block id="bbv2.advanced.projects"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Projects</fo:marker><fo:block font-size="17.28pt">Projects</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As mentioned before, targets are grouped into project, and each
        Jamfile is a separate project. Projects are useful because it allows
        to group related targets together, define properties common to all
        those targets, and assign a symbolic name to the project, allowing to
        easily refer to the targets in the project. Two last goals are
        accompished with the "project" rule.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The rule has this syntax
<fo:block id="id646634" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
project id : &lt;attributes&gt; ;
</fo:block>
        Here, attributes is a sequence of (attribute-name,
        attribute-value) pairs. The list of attribute names along with its
        handling is also shown in the table below. For example, it is
        possible to write:
<fo:block id="id646645" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
project tennis 
    : requirements &lt;threading&gt;multi 
    : default-build release
    ;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The possible attributes are listed below.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-style="italic">Project id</fo:inline> is a short way to denote a project, as
        opposed to the Jamfile's pathname. It is a hierarchical path,
        unrelated to filesystem, such as "boost/thread". <fo:basic-link internal-destination="bbv2.reference.ids">Target references</fo:basic-link> make use of project ids to
        specify a target.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-style="italic">Source location</fo:inline> specifies the directory where sources
        for the project are located.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-style="italic">Project requirements</fo:inline> are requirements that apply to
        all the targets in the projects as well as all subprojects.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-style="italic">Default build</fo:inline> is the build request that should be
        used when no build request is specified explicitly.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="bbv2.advanced.projects.attributes.projectrule">
        The default values for those attributes are
        given in the table below.

        <fo:block span="none"><fo:block id="id646707" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;1.&#xA0;</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-column column-number="4"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Attribute</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Name for the 'project' rule</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Default value</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Handling by the 'project' rule</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Project id</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>none</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>none</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Assigned from the first parameter of the 'project' rule.
                  It is assumed to denote absolute project id.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Source location</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">source-location</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>The location of jamfile for the project</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Sets to the passed value</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Requirements</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">requirements</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>The parent's requirements</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>The parent's requirements are refined with the passed
                  requirement and the result is used as the project
                  requirements.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Default build</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">default-build</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>none</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Sets to the passed value</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Build directory</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">build-dir</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>If parent has a build dir set, the value of it, joined
                  with the relative path from parent to the current project.
                  Otherwise, empty</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Sets to the passed value, interpreted as relative to the
                  project's location.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block><fo:block id="bbv2.advanced.other-rules"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Additional Jamfile rules</fo:marker><fo:block font-size="17.28pt">Additional Jamfile rules</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There's a number of other helper rules which can be used in
      Jamfile, described in the following table.</fo:block><fo:block span="none"><fo:block id="id646826" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;2.&#xA0;</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Rule</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Semantic</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="bbv2.advanced.projects.attributes.projectrule">project</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Define project attributes.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="bbv2.advanced.projects.relationships.useprojectrule">use-project</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Make another project known.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="bbv2.advanced.projects.relationships.buildprojectrule">build-project</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Build another project when this one is built.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:basic-link internal-destination="bbv2.reference.buildprocess.explict">explicit</fo:basic-link></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>States that the target should be built only by explicit
                request.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>glob</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Takes a list of wildcards, and returns the list of files
                which match any of the wildcards.</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block><fo:block id="bbv2.advanced.project-root"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Project root</fo:marker><fo:block font-size="17.28pt">Project root</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each project is also associated with <fo:inline font-style="italic">project root</fo:inline>.
        That's a root for a tree of projects, which specifies some global
        properties.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
          Project root for a projects is the nearest parent directory
          which contains a file called
          <fo:inline font-family="monospace">project-root.jam</fo:inline>. That file defines
          certain properties which apply to all projects under project
          root. It can:

        <fo:list-block id="id646942" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id646944" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
              configure toolsets, via call to <fo:inline font-family="monospace">toolset.using</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id646953" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
              refer to other projects, via the <fo:inline font-family="monospace">use-project</fo:inline>
              rule
            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id646964" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
              declare constants, via the <fo:inline font-family="monospace">constant</fo:inline> and
              <fo:inline font-family="monospace">path-constant</fo:inline> rules.
            </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To facilitate declaration of simple projects, Jamfile and
        project-root can be merged together. To achieve this effect, the
        project root file should call the <fo:inline font-family="monospace">project</fo:inline> rule. The
        semantic is precisely the same as if the call was made in
        Jamfile, except that project-root.jam will start to serve as
        Jamfile. The Jamfile in the directory of project-root.jam will be
        ignored, and project-root.jam will be able to declare main
        targets as usual.</fo:block></fo:block></fo:block><fo:block id="bbv2.advanced.build_process"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Build process</fo:marker><fo:block font-size="20.736pt">Build process</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When you've described your targets, you want Boost.Build to run the
      right tools and create the needed targets. This section will describe
      two things: how you specify what to build, and how the main targets are
      actually constructed.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The most important thing to note is that in Boost.Build, unlike
      other build tools, the targets you declare do not correspond to specific
      files. What you declare in Jamfiles is more like "metatarget". Depending
      on the properties that you specify on the command line, each
      "metatarget" will produce a set of real targets corresponding to the
      requested properties. It is quite possible that the same metatarget is
      build several times with different properties, and will, of course,
      produce different files.
    </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id647039"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Tip</fo:block><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        This means that for Boost.Build, you cannot directly obtain build
        variant from Jamfile. There could be several variants requested by the
        user, and each target can be build with different properties. 
      </fo:block></fo:block></fo:block><fo:block id="id647047"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Build request</fo:marker><fo:block font-size="17.28pt">Build request</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        The command line specifies which targets to build and with what
        properties. For example:
<fo:block id="id647055" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam app1 lib1//lib1 toolset=gcc variant=debug optimization=full
</fo:block>
        would build two targets, "app1" and "lib1//lib1" with the specified
        properties. You can refer to any targets, using 
        <fo:basic-link internal-destination="bbv2.reference.ids">target id</fo:basic-link> and specify arbitrary
        properties. Some of the properties are very common, and for them the name
        of the property can be omitted. For example, the above can be written as:
<fo:block id="id647077" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam app1 lib1//lib1 gcc debug optimization=full
</fo:block>
        The complete syntax which has some additional shortcuts if described <fo:basic-link internal-destination="bbv2.reference.commandline">here</fo:basic-link>.
      </fo:block></fo:block><fo:block id="id647094"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Building a main target</fo:marker><fo:block font-size="17.28pt">Building a main target</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When you request, directly or indirectly, a build of a main target
        with specific requirements, the following steps are made. Some brief
        explanation is provided, and more detailes are given in the <fo:basic-link internal-destination="bbv2.reference.buildprocess">reference</fo:basic-link>.
        <fo:list-block id="id647115" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id647121" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Applying default build. If the default-build
          property of a target specifies a value of a feature which is not
          present in the build request, that value is added.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id647128" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Selecting the main target alternative to use. For
              each alternative we look how many properties are present both in
              alternative's requirements, and in build request. The
              alternative with large number of matching properties is selected.
            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id647137" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Determining "common" properties. The build request
              is <fo:basic-link internal-destination="bbv2.reference.variants.proprefine">refined</fo:basic-link>
              with target's requirements. The conditional properties in
              requirements are handled as well. Finally, default values of
              features are added.
            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id647156" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Building targets referred by the sources list and
              dependency properties. The list of sources and the properties
              can refer to other target using <fo:basic-link internal-destination="bbv2.reference.ids">target references</fo:basic-link>. For each
              reference, we take all <fo:basic-link internal-destination="bbv2.reference.features.attributes.propagated">propagated</fo:basic-link>
              properties, refine them by explicit properties specified in the
              target reference, and pass the resulting properties as build
              request to the other target.              
            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id647188" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Adding the usage requirements produces when building
              dependencies to the "common" properties. When dependencies are
              built in the previous step, they return both the set of created
              "real" targets, and usage requirements. The usage requirements
              are added to the common properties and the resulting property
              set will be used for building the current target.              
            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id647199" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Building the target using generators. To convert the
              sources to the desired type, Boost.Build uses "generators" ---
              objects which correspond to tools like compilers and
              linkers. Each generator declares what type of targets in can
              produce and what type of sources it requires. Using this
              information, Boost.Build determines which generators must be run
              to produce a specific target from specific sources. When
              generators are run, they return the "real" targets.
            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id647222" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Computing the usage requirements to be returned. The
          conditional properties in usage requirements are expanded and the
          result is returned.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block><fo:block id="id647228"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Building a project</fo:marker><fo:block font-size="17.28pt">Building a project</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Often, user request a build of a complete project, not just one
        main target. In fact, invoking <fo:inline font-weight="bold">bjam</fo:inline> without
        parameters builds the project defined in the current directory.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When a project is build, the build request is passed without
        modification to all main targets in that project. It's is possible to
        prevent implicit building of a target in a project with the
        <fo:inline font-family="monospace">explicit</fo:inline> rule:
<fo:block id="id647256" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
explicit hello_test ;
</fo:block>
        would cause the <fo:inline font-family="monospace">hello_test</fo:inline> target to be built only if
        explicitly requested by the user or by some other target.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The Jamfile for a project can include a number of
      <fo:inline font-family="monospace">build-project</fo:inline> rule calls, that specify additional projects
      to be built.
      </fo:block></fo:block></fo:block><fo:block id="bbv2.advanced.builtins.targets"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Builtin target types</fo:marker><fo:block font-size="20.736pt">Builtin target types</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id647292"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Programs</fo:marker><fo:block font-size="17.28pt">Programs</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Programs are created using the <fo:inline font-family="monospace">exe</fo:inline> rule, which
        follows the <fo:basic-link internal-destination="bbv2.main-target-rule-syntax">common
          syntax</fo:basic-link>. For example:
<fo:block id="id647317" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe hello : hello.cpp some_library.lib /some_project//library 
          : &lt;threading&gt;multi 
          ;
</fo:block>
        This will create an executable file from the sources -- in this case,
        one C++ file, one library file present in the same directory, and
        another library which is created by Boost.Build. Generally, sources
        can include C and C++ files, object files and libraries. Boost.Build
        will automatically try to convert targets of other types.
      </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id647332"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Tip</fo:block><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">         
          On Windows, if an application uses dynamic libraries, and both
          the application and the libraries are built by Boost.Build, its not
          possible to immediately run the application, because the
          <fo:inline font-family="monospace">PATH</fo:inline> environment variable should include the path
          to the libraries. It means you have to either add the paths
          manually, or place the application and the libraries to the same
          directory, for example using the <fo:basic-link internal-destination="bbv2.builtins.stage">
            stage</fo:basic-link> rule.
      </fo:block></fo:block></fo:block></fo:block><fo:block id="id647361"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Libraries</fo:marker><fo:block font-size="17.28pt">Libraries</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Libraries are created using the <fo:inline font-family="monospace">lib</fo:inline> rule, which
        follows the <fo:basic-link internal-destination="bbv2.main-target-rule-syntax">common
          syntax</fo:basic-link>. For example:
<fo:block id="id647384" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib helpers : helpers.cpp : &lt;include&gt;boost : : &lt;include&gt;. ;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In the most common case, the <fo:inline font-family="monospace">lib</fo:inline> creates a library
        from the specified sources. Depending on the value of
        &lt;link&gt; feature the library will be either static or
        shared. There are two other cases. First is when the library is
        installed somewhere in compiler's search paths, and should be
        searched by the compiler (typically, using the <fo:inline font-family="monospace">-l</fo:inline>
        option). The second case is where the library is available as a 
        prebuilt file and the full path is known.          
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        The syntax for these case is given below:
<fo:block id="id647423" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib z : : &lt;name&gt;z &lt;search&gt;/home/ghost ;            
lib compress : : &lt;file&gt;/opt/libs/compress.a ;
</fo:block>
        The <fo:inline font-family="monospace">name</fo:inline> property specifies the name which should be
        passed to the <fo:inline font-family="monospace">-l</fo:inline> option, and the <fo:inline font-family="monospace">file</fo:inline>
        property specifies the file location. The <fo:inline font-family="monospace">search</fo:inline> feature
        specifies paths where the library should be searched. That feature can
        be specified several time, or can be omitted -- in which case only
        default compiler paths will be searched.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The difference between using the <fo:inline font-family="monospace">file</fo:inline> feature as
        opposed to the <fo:inline font-family="monospace">name</fo:inline> name feature together with the
        <fo:inline font-family="monospace">search</fo:inline> feature is that <fo:inline font-family="monospace">file</fo:inline> is more
        precise. A specific file will be used. On the other hand, the
        <fo:inline font-family="monospace">search</fo:inline> feature only adds a library path, and the
        <fo:inline font-family="monospace">name</fo:inline> feature gives the basic name of the library. The
        search rules are specific to the linker. For example, given these
        definition:
<fo:block id="id647510" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib a : : &lt;variant&gt;release &lt;file&gt;/pool/release/a.so ;
lib a : : &lt;variant&gt;debug &lt;file&gt;/pool/debug/a.so ;
lib b : : &lt;variant&gt;release &lt;file&gt;/pool/release/b.so ;
lib b : : &lt;variant&gt;debug &lt;file&gt;/pool/debug/b.so ;
</fo:block>
        It's possible to use release version of <fo:inline font-family="monospace">a</fo:inline> and debug
        version of <fo:inline font-family="monospace">b</fo:inline>. Had we used the <fo:inline font-family="monospace">name</fo:inline> and
        <fo:inline font-family="monospace">search</fo:inline> features, the linker would always pick either
        release or debug versions.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        For convenience, the following syntax is allowed:
<fo:block id="id647555" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib z ;
lib gui db aux ;
</fo:block>
          and is does exactly the same as:
<fo:block id="id647563" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib z : : &lt;name&gt;z ;            
lib giu : : &lt;name&gt;gui ;            
lib db : : &lt;name&gt;db ;            
lib aux : : &lt;name&gt;aux ;            
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When a library uses another library you should put that another
        library in the list of sources. This will do the right thing in all
        cases. For portability, you should specify library dependencies even
        for searched and prebuilt libraries, othewise, static linking on
        Unix won't work. For example:
<fo:block id="id647581" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib z ;
lib png : z : &lt;name&gt;png ;
</fo:block></fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id647587"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Note</fo:block><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When a library (say, <fo:inline font-family="monospace">a</fo:inline>), which has another
          library, (say, <fo:inline font-family="monospace">b</fo:inline>) is linked dynamically, the <fo:inline font-family="monospace">b</fo:inline>
          library will be incorporated in <fo:inline font-family="monospace">a</fo:inline>. (If <fo:inline font-family="monospace">b</fo:inline>
          is dynamic library as well, then <fo:inline font-family="monospace">a</fo:inline> will only refer to
          it, and not include any extra code.) When the <fo:inline font-family="monospace">a</fo:inline>
          library is linked statically, Boost.Build will assure that all
          executables which link to <fo:inline font-family="monospace">a</fo:inline> will also link to
          <fo:inline font-family="monospace">b</fo:inline>.
        </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">One feature of Boost.Build which is very important for libraries
        is usage requirements. For example, if you write:
<fo:block id="id647658" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib helpers : helpers.cpp : : : &lt;include&gt;. ;
</fo:block>
        then compiler include path for all targets which use
        <fo:inline font-family="monospace">helpers</fo:inline> will contain the directory where the target is
        defined.path to "helpers.cpp". So, the user need only to add
        <fo:inline font-family="monospace">helpers</fo:inline> to the list of sources, and don't bother about
        other requirements. This allows to greatly simplify Jamfiles.
      </fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id647684"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Note</fo:block><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you don't want shared libraries to include all libraries
          which are specified in sources (especially statically linked ones),
          you'd need to use the following:
<fo:block id="id647691" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib b : a.cpp ;
lib a : a.cpp : &lt;use&gt;b : : &lt;library&gt;b ;
</fo:block>
          This specifies that <fo:inline font-family="monospace">a</fo:inline> uses <fo:inline font-family="monospace">b</fo:inline>, and causes
          all executables which link to <fo:inline font-family="monospace">a</fo:inline> also link to
          <fo:inline font-family="monospace">b</fo:inline>. In this case, even for shared linking, the
          <fo:inline font-family="monospace">a</fo:inline> library won't even refer to <fo:inline font-family="monospace">b</fo:inline>.
        </fo:block></fo:block></fo:block></fo:block><fo:block id="bbv2.builtins.alias"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Alias</fo:marker><fo:block font-size="17.28pt">Alias</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">alias</fo:inline> rule follows the <fo:basic-link internal-destination="bbv2.main-target-rule-syntax">common syntax</fo:basic-link>. For
        example:
<fo:block id="id647766" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
alias core : im reader writer ;
</fo:block>
        will build the sources and return the generated source targets
        without modification. 
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        The <fo:inline font-family="monospace">alias</fo:inline> rule is a convenience tool. If you often build
        the same group of targets at the same time, you can define the alias
        to save typing.        
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        Another use of the <fo:inline font-family="monospace">alias</fo:inline> rule is to change build
        properties. For example, if you always want static linking for a
        specific C++ Boost library, you can write the following:
<fo:block id="id647799" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
alias boost_thread : /boost/thread//boost_thread : &lt;link&gt;static ;
</fo:block>
        and use only the <fo:inline font-family="monospace">boost_thread</fo:inline> alias in your Jamfiles.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        It is also allowed to specify usage requirements for the
        <fo:inline font-family="monospace">alias</fo:inline> target. If you write the following:
<fo:block id="id647826" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
alias header_only_library : : : :  &lt;include&gt;/usr/include/header_only_library ; 
</fo:block>
        then using <fo:inline font-family="monospace">header_only_library</fo:inline> in sources will only add an
        include path. Also note that when there are some sources, their usage
        requirements are propagated, too. For example:
<fo:block id="id647846" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib lib : lib.cpp : : : &lt;include&gt;. ;
alias lib_alias ;
exe main : main.cpp lib_alias ;
</fo:block>
        will compile <fo:inline font-family="monospace">main.cpp</fo:inline> with the additional include.
      </fo:block></fo:block><fo:block id="bbv2.builtins.stage"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Installing</fo:marker><fo:block font-size="17.28pt">Installing</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For installing the built target you should use the
        <fo:inline font-family="monospace">stage</fo:inline> rule follows the <fo:basic-link internal-destination="bbv2.main-target-rule-syntax">common syntax</fo:basic-link>. For
        example:
<fo:block id="id647892" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
stage dist : hello helpers ;
</fo:block>
        will cause the targets <fo:inline font-family="monospace">hello</fo:inline> and <fo:inline font-family="monospace">helpers</fo:inline> to
        be moved to the <fo:inline font-family="monospace">dist</fo:inline> directory. The directory can
        be changed with the <fo:inline font-family="monospace">location</fo:inline> property:
<fo:block id="id647927" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
stage dist : hello helpers : &lt;location&gt;/usr/bin ;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        Specifying the names of all libraries to install can be boring. The
        <fo:inline font-family="monospace">stage</fo:inline> allows to specify only the top-level executable
        targets to install, and automatically install all dependencies:
<fo:block id="id647945" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
stage dist : hello 
           : &lt;traverse-dependencies&gt;on &lt;include-type&gt;EXE
             &lt;include-type&gt;LIB
           ;
</fo:block>
        will find all targets that <fo:inline font-family="monospace">hello</fo:inline> depends on, and install
        all of the which are either executables or libraries.
      </fo:block></fo:block><fo:block id="bbv2.builtins.testing"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Testing</fo:marker><fo:block font-size="17.28pt">Testing</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Boost.Build has convenient support for running unit tests. The
        simplest way is the <fo:inline font-family="monospace">unit-test</fo:inline> rule, which follows the
        <fo:basic-link internal-destination="bbv2.main-target-rule-syntax">common syntax</fo:basic-link>. For
        example:
<fo:block id="id647993" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
unit-test helpers_test : helpers_test.cpp helpers ;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">unit-test</fo:inline> rule behaves like the
        <fo:inline font-family="monospace">exe</fo:inline> rule, but after the executable is created it is
        run. If the executable returns error, the build system will also
        return error and will try running the executable on the next
        invocation until it runs successfully. This behaviour ensures that you
        can't miss a unit test failure.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There are rules for more elaborate testing: <fo:inline font-family="monospace">compile</fo:inline>,
        <fo:inline font-family="monospace">compile-fail</fo:inline>, <fo:inline font-family="monospace">run</fo:inline> and
        <fo:inline font-family="monospace">run-fail</fo:inline>. They are more suitable for automated testing, and
        are not covered here yet.
      </fo:block></fo:block></fo:block><fo:block id="bbv2.advanced.builtins.features"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Builtin features</fo:marker><fo:block font-size="20.736pt">Builtin features</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:list-block id="id648060" provisional-distance-between-starts="18em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id648061" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">variant</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            The feature which combines several low-level features in
            order to make building most common variants simple.
          </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Allowed values:</fo:inline><fo:inline font-family="monospace">debug</fo:inline>, <fo:inline font-family="monospace">release</fo:inline>,
            <fo:inline font-family="monospace">profile</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The value <fo:inline font-family="monospace">debug</fo:inline> expands to</fo:block><fo:block id="id648109" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
            &lt;optimization&gt;off &lt;debug-symbols&gt;on &lt;inlining&gt;off &lt;runtime-debugging&gt;on
          </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The value <fo:inline font-family="monospace">release</fo:inline> expands to</fo:block><fo:block id="id648126" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
            &lt;optimization&gt;speed &lt;debug-symbols&gt;off &lt;inlining&gt;full &lt;runtime-debugging&gt;off
          </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The value <fo:inline font-family="monospace">profile</fo:inline> expands to the same as
            <fo:inline font-family="monospace">release</fo:inline>, plus:</fo:block><fo:block id="id648151" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
            &lt;profiling&gt;on &lt;debug-symbols&gt;on
          </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Rationale:</fo:inline> Runtime debugging is on in debug build
            to suit expectations of people used various IDEs. It's
            assumed other folks don't have any specific expectation in
            this point.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="bbv2.advanced.builtins.features.link" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">link</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            Feature which controls how libraries are built.
          </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Allowed values:</fo:inline><fo:inline font-family="monospace">shared</fo:inline>,
            <fo:inline font-family="monospace">static</fo:inline></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id648206" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">source</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            Tthe &lt;source&gt;X feature has the same effect on building a target
            as putting X in the list of sources. The feature
            is sometimes more convenient: you can put &lt;source&gt;X in
            the requirements for a project and it will be linked to all
            executables.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id648224" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">library</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            This feature is equivalent to the &lt;source&gt; feature, and exists
            for backward compatibility reasons.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id648241" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">use</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            Causes the target referenced by the value of this feature
            to be constructed and adds it's usage requirements to build
            properties. The constructed targets are not used in any other
            way. The primary use case is when you use some library and want
            it's usage requirements (such as include paths) to be applied,
            but don't want to link to the library.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id648260" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">dll-path</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            Specify an additional path where shared libraries should be
            searched where the executable or shared library is run. This
            feature only affect Unix compilers. Plase see the <fo:basic-link internal-destination="bbv2.faq.dll-path">FAQ entry</fo:basic-link> for details.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id648285" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline><fo:inline font-family="monospace">hardcode-dll-paths</fo:inline></fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            Controls automatic generation of dll-path properties.
          </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Allowed values:</fo:inline><fo:inline font-family="monospace">true</fo:inline>, <fo:inline font-family="monospace">false</fo:inline>.  This property
            is specific to Unix systems. If an executable is build with
            <fo:inline font-family="monospace">&lt;hardcode-dll-paths&gt;true</fo:inline>, the generated binary
            will contain the list of all the paths to the used shared
            libraries. As the result, the executable can be run without
            changing system paths to shared libraries, or installing the
            libraries to system paths. This is very convenient during
            development. Plase see the <fo:basic-link internal-destination="bbv2.faq.dll-path">FAQ entry</fo:basic-link> for details.
          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="bbv2.advanced.differences_to_v1"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Differences to Boost.Build V1</fo:marker><fo:block font-size="20.736pt">Differences to Boost.Build V1</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">While Boost.Build V2 is based on the same ideas as Boost.Build V1,
    some of the syntax was changed, and some new important features were
    added. This chapter describes most of the changes.</fo:block><fo:block id="bbv2.advanced.differences_to_v1.configuration"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Configuration</fo:marker><fo:block font-size="17.28pt">Configuration</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In V1, there were two methods to configure a toolset. One is to
      set some environment variable, or use "-s" command line option to set
      variable inside BJam. Another method was creating new toolset module,
      which would set the variables and then invoke basic toolset. Neither
      method is necessary now, the "using" rule provides a consistent way to
      initialize toolset, including several versions. See <fo:basic-link internal-destination="bbv2.advanced.configuration">section on configuraton</fo:basic-link> for
      details.
      </fo:block></fo:block><fo:block id="bbv2.advanced.differences_to_v1.jamfiles"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Writing Jamfiles</fo:marker><fo:block font-size="17.28pt">Writing Jamfiles</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Probably one of the most important differences in V2 Jamfiles is
      the project requirements. In V1, if several targets have the same
      requirements (for example, common include path), it was necessary to
      manually write that requirements, or use a helper rule. In V2, the
      common properties can be specified with the "requirements" project
      attribute, as documented <fo:basic-link internal-destination="bbv2.advanced.projects">here</fo:basic-link>.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:basic-link internal-destination="bbv2.tutorial.libs">usage requirements</fo:basic-link>
      is also important mechanism to simplify Jamfile. If a library requires
      all clients to use specific includes, or macros when compiling the
      code which depends on the library, this information can be cleanly
      represented.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The difference between "lib" and "dll" targets in V1 is completely
      eliminated in V2. There's only one target -- "lib", which can create
      either static or shared library depending on the value of the 
        <fo:basic-link internal-destination="bbv2.advanced.builtins.features.link">&lt;link&gt;
      feature</fo:basic-link>. If your target should be only build in one variant, you
      can add &lt;link&gt;shared or &lt;link&gt;static to requirements.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The syntax for referring to other targets was changed a bit. While
      in V1 one would use:
<fo:block id="id648451" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe a : a.cpp &lt;lib&gt;../foo/bar ;
</fo:block> 
        the V2 syntax is:
<fo:block id="id648459" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe a : a.cpp ../foo//bar ;
</fo:block>
        Note that you don't need to specify the type of other target, but the
        last element should be separated to double slash, to indicate that
        you're referring to target "bar" in project "../foo", and not to
        project "../foo/bar".
        </fo:block></fo:block><fo:block id="bbv2.advanced.differences_to_v1.build_process"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Build process</fo:marker><fo:block font-size="17.28pt">Build process</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The command line syntax in V2 is completely different. For example
<fo:block id="id648484" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam -sTOOLS=msvc -sBUILD=release some_target
</fo:block>
        now becomes:
<fo:block id="id648491" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam toolset=msvc variant=release some_target
</fo:block>
        or, using shortcuts, just:
<fo:block id="id648498" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
bjam msvc release some_target
</fo:block>
      See <fo:basic-link internal-destination="bbv2.reference.commandline">the reference</fo:basic-link> for
      complete description of the syntax.
      </fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Extender Manual</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Extender Manual</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="bbv2.extender"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Extender Manual</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="bbv2.extender.intro"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="20.736pt">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This document explains how to extend Boost.Build to accomodate
  your local requirements. Let's start with quite simple, but
  realistic example.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Say you're writing an application which generates C++ code. If
  you ever did this, you know that it's not nice. Embedding large
  portions of C++ code in string literals is very awkward. A much
  better solution is:</fo:block><fo:list-block id="id648547" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id648553" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        Write the template of the code to be generated, leaving
    placeholders at the points which will change
      </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id648559" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        Access the template in your application and replace
    placeholders with appropriate text.
      </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id648565" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Write the result.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It's quite easy to achieve. You write special verbatim files,
  which are just C++, except that the very first line of the file
  gives a name of variable that should be generated. A simple tool
  is created which takes verbatim file and creates a cpp file with
  a single char* variable, which name is taken from the first line
  of verbatim file, and which value is properly quoted content of
  the verbatim file.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Let's see what Boost.Build can do.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">First off, Boost.Build has no idea about "verbatim files". So,
  you must register a new type. The following code does it:</fo:block><fo:block id="id648586" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
import type ;
type.register VERBATIM : verbatim ;
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The first parameter to 'type.register' gives the name of
  declared type. By convention, it's uppercase. The second
  parameter is suffix for this type. So, if Boost.Build sees
  "code.verbatim" in the list of sources, it knows that it's of
  type <fo:inline font-family="monospace">VERBATIM</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Lastly, you need a tool to convert verbatim files to C++. Say
  you've sketched such a tool in Python. Then, you have to inform
  Boost.Build about the tool. The Boost.Build concept which
  represents a tool is <fo:inline font-style="italic">generator</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">First, you say that generator 'inline-file' is able to convert
  VERBATIM type into C++:</fo:block><fo:block id="id648619" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
import generators ;
generators.register-standard verbatim.inline-file : VERBATIM : CPP ;
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second, you must specify the commands to be run to actually
  perform convertion:</fo:block><fo:block id="id648630" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
actions inline-file
{
    "./inline-file.py" $(&lt;) $(&gt;)
}
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Now, we're ready to tie it all together. Put all the code
  above in file "verbatim.jam", add "import verbatim ;" to
  "project-root.jam", and it's possible to write the following in
  Jamfile:</fo:block><fo:block id="id648642" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe codegen : codegen.cpp class_template.verbatim usage.verbatim ;
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The verbatim files will be automatically converted into C++
and linked it.
  </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In the subsequent sections, we will extend this example, and review
        all the mechanisms in detail. The complete code is available in <fo:basic-link external-destination="../../tools/build/v2/example/customization">example/customization</fo:basic-link>
        directory.
      </fo:block></fo:block><fo:block id="bbv2.extending.targets"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Target types</fo:marker><fo:block font-size="20.736pt">Target types</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The first thing we did in the <fo:basic-link internal-destination="bbv2.extender.intro">intruduction</fo:basic-link> was declaring a
      new target type:
<fo:block id="id648688" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
import type ;
type.register VERBATIM : verbatim ;
</fo:block>
        The type is the most important property of a target. Boost.Build can
        automatically generate necessary build actions only because you
        specify the desired type (using the different main target rules), and
        because Boost.Build can guess the type of sources from their
        extensions.        
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The first two parameters for the <fo:inline font-family="monospace">type.register</fo:inline> rule
        are the name of new type and the list of extensions associated with
        it. A file with an extension from the list will have the given target
        type. In the case where a target of the declared type is generated
        from other sources, the first specified extension will be used. This
        behaviour can be changed using the
        <fo:inline font-family="monospace">type.set-generated-target-suffix</fo:inline> rule.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        Something about 'main' types.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Something about base types.
      </fo:block><fo:block id="bbv2.extending.scanners"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Scanners</fo:marker><fo:block font-size="17.28pt">Scanners</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
          Sometimes, a file can refer to other files via some include
          mechanism. To make Boost.Build track dependencies to the included
          files, you need to provide a scanner. The primary limitation is that
          only one scanner can be assigned to a target type.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">First, we need to declare a new class for the scanner:
<fo:block id="id648750" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
class verbatim-scanner : common-scanner
{
    rule pattern ( )
    {
        return "//###include[ ]*\"([^\"]*)\"" ;
    }
}
</fo:block>         
          All the complex logic is in the <fo:inline font-family="monospace">common-scanner</fo:inline> class,
          and you only need to override the method which returns the regular
          expression to be used for scanning. The paranthethis in the regular
          expression indicate which part of the string is the name of the
          included file. 
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">After that, we need to register our scanner class:
<fo:block id="id648774" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
scanner.register verbatim-scanner : include ;
</fo:block>
            The value of the second parameter, in this case
            <fo:inline font-family="monospace">include</fo:inline>, specifies which properties contain the list
            of paths which should be searched for the included files.
         </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Finally, we assign the new scaner to the <fo:inline font-family="monospace">VERBATIM</fo:inline>
        target type:
<fo:block id="id648801" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
type.set-scanner VERBATIM : verbatim-scanner ;
</fo:block>
          That's enough for scanning include dependencies.
        </fo:block></fo:block></fo:block><fo:block id="bbv2.extending.tools"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Tools and generators</fo:marker><fo:block font-size="20.736pt">Tools and generators</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        This section will describe how Boost.Build can be extended to support
        new tools.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For each additional tool, a Boost.Build object called generator
        must be created. That object has specific types of targets which it
        accepts an produces. Using that information, Boost.Build is able
        to automatically invoke the generator. For example, if you declare a
        generator which takes a target of the type <fo:inline font-family="monospace">D</fo:inline> and
        produces a target of the type <fo:inline font-family="monospace">OBJ</fo:inline>, when placing a
        file with extention <fo:inline font-family="monospace">.d</fo:inline> in a list of sources will
        cause Boost.Build to invoke your generator, and then to link the
        resulting object file into an application. (Of course, this requires
        that you specify that the <fo:inline font-family="monospace">.d</fo:inline> extension corresponds
        to the <fo:inline font-family="monospace">D</fo:inline> type.)
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each generator should be an instance of a class derived from the
        <fo:inline font-family="monospace">generator</fo:inline> class. In the simplest case, you don't need to
        create a derived class, but simply create an instance of the
        <fo:inline font-family="monospace">generator</fo:inline> class. Let's review the example we've seen in the
        <fo:basic-link internal-destination="bbv2.extender.intro">introduction</fo:basic-link>.
<fo:block id="id648896" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
import generators ;
generators.register-standard verbatim.inline-file : VERBATIM : CPP ;
actions inline-file
{
    "./inline-file.py" $(&lt;) $(&gt;)
}
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">We declare a standard generator, specifying its id, the source type
        and the target type. When invoked, the generator will create a target
        of type <fo:inline font-family="monospace">CPP</fo:inline> which will have the source target of
        type <fo:inline font-family="monospace">VERBATIM</fo:inline> as the only source. But what command
        will be used to actually generate the file? In bjam, actions are
        specified using named "actions" blocks and the name of the action
        block should be specified when creating targets. By convention,
        generators use the same name of the action block as their own id. So,
        in above example, the "inline-file" actions block will be use to
        convert the source into the target.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        There are two primary kinds of generators: standard and composing,
        which are registered with the
        <fo:inline font-family="monospace">generators.register-standard</fo:inline> and the
        <fo:inline font-family="monospace">generators.register-composing</fo:inline> rules, respectively. For
        example:
<fo:block id="id648944" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
generators.register-standard verbatim.inline-file : VERBATIM : CPP ;
generators.register-composing mex.mex : CPP LIB : MEX ;
</fo:block>
        The first generators takes a <fo:inline font-style="italic">single</fo:inline> source of type
        <fo:inline font-family="monospace">VERBATIM</fo:inline> and produces a result. The second generator
        takes any number of sources, which can have either the
        <fo:inline font-family="monospace">CPP</fo:inline> or the <fo:inline font-family="monospace">LIB</fo:inline> type. Composing generators
        are typically used for generating top-level target type. For example,
        the first generator invoked when building an <fo:inline font-family="monospace">exe</fo:inline> target
        is a composing generator corresponding to the proper linker.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You should also know about two specific function for registering
        generators: <fo:inline font-family="monospace">generators.register-c-compiler</fo:inline> and
        <fo:inline font-family="monospace">generators.register-linker</fo:inline>. The first sets up header
        dependecy scanning for C files, and the seconds handles various
        complexities like searched libraries. For that reason, you should always
        use those functions when adding support for compilers and linkers.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">(Need a note about UNIX)</fo:block><fo:block id="id649014"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Custom generator classes</fo:marker><fo:block font-size="17.28pt">Custom generator classes</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The standard generators allows you to specify source and target
        types, action, and a set of flags. If you need anything more complex,
        you need to create a new generator class with your own logic. Then,
        you have to create an instance of that class and register it. Here's
        an example how you can create your own generator class:
<fo:block id="id649026" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
class custom-generator : generator
{
    rule __init__ ( * : * )
    {
        generator.__init__ $(1) : $(2) : $(3) : $(4) : $(5) : $(6) : $(7) : $(8) : $(9) ;
    }
}

generators.register 
  [ new custom-generator verbatim.inline-file : VERBATIM : CPP ] ;
</fo:block>
        This generator will work exactly like the
        <fo:inline font-family="monospace">verbatim.inline-file</fo:inline> generator we've defined above, but
        it's possible to customize the behaviour by overriding methods of the
        <fo:inline font-family="monospace">generator</fo:inline> class.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There are two methods of interest. The <fo:inline font-family="monospace">run</fo:inline> methods is
        responsible for overall process - it takes a number of source targets,
        converts them the the right types, and creates the result. The
        <fo:inline font-family="monospace">generated-targets</fo:inline> method is called when all sources are
        converted to the right types to actually create the result.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">generated-target</fo:inline> method can be overridden when you
        want to add additional properties to the generated targets or use
        additional sources. For example (which is real), you have a tool for
        analysing programs, which should be given a name of executable and the
        list of all sources. Naturally, you don't want to list all source
        files manually. Here's how the <fo:inline font-family="monospace">generated-target</fo:inline> method
        can find the list of sources automatically:
<fo:block id="id649098" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
class itrace-generator : generator {
....
    rule generated-targets ( sources + : property-set : project name ? )
    {
        local leafs ;
        local temp = [ virtual-target.traverse $(sources[1]) : : include-sources ] ;
        for local t in $(temp)
        {
            if ! [ $(t).action ]
            {
                leafs += $(t) ;
            }
        }
        return [ generator.generated-targets $(sources) $(leafs)
          : $(property-set) : $(project) $(name) ] ;
    }
}
generators.register [ new itrace-generator nm.itrace : EXE : ITRACE ] ;
</fo:block>
        The <fo:inline font-family="monospace">generated-targets</fo:inline> rule will be called with a single
        source target of type <fo:inline font-family="monospace">EXE</fo:inline>. The call to the
        <fo:inline font-family="monospace">virtual-target.traverse</fo:inline> will return all targets the
        executable depends on, and we further find files which are not
        produced from anything. The found targets are added to the sources.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">run</fo:inline> method can be overriden to completely
        customize the way generator works. In particular, the conversion of
        sources to the desired types can be completely customized. Here's
        another real example. Tests for the Boost Python library usually
        consist of two parts: a Python program and a C++ file. The C++ file is
        compiled to Python extension which is loaded by the Python
        program. But in the likely case that both files have the same name,
        the created Python extension must be renamed. Otherwise, Python
        program will import itself, not the extension. Here's how it can be
        done:
<fo:block id="id649158" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
rule run ( project name ? : property-set : sources * : multiple ? )
{       
    local python ;
    for local s in $(sources)
    {
        if [ $(s).type ] = PY
        {
            python = $(s) ;
        }
    }
    
    local libs ;
    for local s in $(sources)
    {
        if [ type.is-derived [ $(s).type ] LIB ]
        {
            libs += $(s) ;
        }
    }
    
    local new-sources ;
    for local s in $(sources)
    {
        if [ type.is-derived [ $(s).type ] CPP ] 
        {
            local name = [ $(s).name ] ;
            if $(name) = [ $(python).name ] 
            {
                name = $(name)_ext ;
            }                                
            new-sources += [ generators.construct $(project) $(name) :
              PYTHON_EXTENSION : $(property-set) : $(s) $(libs) ] ;
        }
    }
        
    result = [ construct-result $(python) $(new-sources) : $(project) $(name) 
                 : $(property-set) ] ;        
}    
</fo:block>        
        First, we separate all source into python files, libraries and C++
        sources. For each C++ source we create a separate Python extension by
        calling <fo:inline font-family="monospace">generators.construct</fo:inline> and passing the C++ source
        and the libraries. At this point, we also change the extension's name,
        if necessary.        
      </fo:block></fo:block><fo:block id="bbv2.extending.features"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Features</fo:marker><fo:block font-size="20.736pt">Features</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        Often, we need to control the options passed the invoked tools. This 
        is done with features. Consider an example:
<fo:block id="id649207" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
# Declare a new feature
import feature : feature ;
feature verbatim-options : : free ;

# Cause the value of the 'verbatim-options' feature to be
# available as 'OPTIONS' variable inside verbatim.inline-file
import toolset : flags ;
flags verbatim.inline-file OPTIONS &lt;verbatim-options&gt; ;

# Use the "OPTIONS" variable
actions inline-file
{
    "./inline-file.py" $(OPTIONS) $(&lt;) $(&gt;)
}
</fo:block>
        We first define a new feature. Then, the <fo:inline font-family="monospace">flags</fo:inline> invocation
        says that whenever verbatin.inline-file action is run, the value of
        the <fo:inline font-family="monospace">verbatim-options</fo:inline> feature will be added to the
        <fo:inline font-family="monospace">OPTIONS</fo:inline> variable, an can be used inside the action body.
        You'd need to consult online help (--help) to find all the features of
        the <fo:inline font-family="monospace">toolset.flags</fo:inline> rule.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Although you can define any set of features and interpret their values
      in any way, Boost.Build suggests the following coding standard for
      designing features.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Most features should have a fixed set of values, which is portable
      (tool neutral) across the class of tools they are designed to work
      with. The user does not have to adjust the values for a exact tool.  For
      example, <fo:inline font-family="monospace">&lt;optimization&gt;speed</fo:inline> has the same meaning for
      all C++ compilers and the user does not have to worry about the exact
      options which are passed to the compiler's command line.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Besides such portable features there are special 'raw' features which
      allow the user to pass any value to the command line parameters for a
      particular tool, if so desired. For example, the
      <fo:inline font-family="monospace">&lt;cxxflags&gt;</fo:inline> feature allows to pass any command line
      options to a C++ compiler. The <fo:inline font-family="monospace">&lt;include&gt;</fo:inline> feature
      allows to pass any value to the <fo:inline font-family="monospace">-I</fo:inline> and the interpretation
      is tool-specific. (There an <fo:basic-link internal-destination="bbv2.faq.external">example</fo:basic-link> of very smart usage of that
      feature).  Of course one should always strive to use the portable
      features but these should still be provided as a backdoor just to make
      sure Boost.Build does not take away any control from the user. 
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Some of the reasons why portable features are better are:
      <fo:list-block id="id649323" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id649324" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Since a portable feature have a fixed set of value, you will
            be able to build your project with two different settings of the
            feature. Boost.Build will automatically use two different
            directories for produced files. If you pass raw compiler options,
            Boost.Build assumes you know what you are doing, and would not
            care about what options are passed.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649335" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Unlike "raw" features, you don't need to use specific
            compiler flags in Jamfile, and it will more likely work on other systems.
          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id649341"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Steps for adding a feauture</fo:marker><fo:block font-size="17.28pt">Steps for adding a feauture</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Adding a feature requires three steps:

        <fo:list-block id="id649348" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id649354" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Declaring a feature. For that, the "feature.feature"
              rule is used. You should have to decide on the set of <fo:basic-link internal-destination="bbv2.reference.features.attributes">feature
              attributes</fo:basic-link>:

              <fo:list-block id="id649369" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id649370" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if feature has several values, and
                    significally affects build, make it "propagated", so that
                    whole project is build with the same value by
                    default</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649377" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if a feature does not have a fixed list of
                    values, it must be "free".</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649383" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if feature is used to refer to a path, it must
                be "path".</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649388" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>if feature is used to refer to some target, it
                must be "dependency".</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649393" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Converting the feature value into variable. To use
              feature in build action, it must be converted into a variable,
              accessible in build action. This is accomplished by
              "toolset.flags" rule.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649400" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Using the variable. The variable set in step 2 can
              be used in build action to form command parameters or
              files.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="id649407"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Another example</fo:marker><fo:block font-size="17.28pt">Another example</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Here's an another example.
        Let's see how we can make a feature which refers to a target. For example,
        when linking dynamic libraries on windows, one sometimes needs to specify
        "DEF file", telling what functions should be exported. It would be nice to
        use this file like this:
<fo:block id="id649417" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
        lib a : a.cpp : &lt;def-file&gt;a.def ;
</fo:block>
        Actually, this feature is already supported, but anyway...
      </fo:block><fo:list-block id="id649426" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id649432" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Since the feature refers to a target, it must be "dependency".
<fo:block id="id649437" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
feature def-file : : free dependency ;
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649443" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>One of the toolsets which cares about DEF files is
msvc. The following line should be added to it.

<fo:block id="id649448" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
flags msvc.link DEF_FILE &lt;def-file&gt; ;
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649454" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Since the DEF_FILE variable is not used by the
msvc.link action, we need to modify it to be:

<fo:block id="id649459" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
actions link bind DEF_FILE
{
    $(.LD) .... /DEF:$(DEF_FILE) ....
}
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Note the "bind DEF_FILE" part. It tells bjam that DEF_FILE
            refers to a file, otherwise the variable will contain internal
            target name, which is not likely to make sense for the linker.
          </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
            We've almost done, but should stop for a small workaround. Add the following
            code to msvc.jam

<fo:block id="id649477" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
rule link
{
    DEPENDS $(&lt;) : [ on $(&lt;) return $(DEF_FILE) ] ;
}
</fo:block>

            This is needed to accomodate some bug in bjam, which hopefully
            will be fixed one day.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block id="id649488"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Variants and composite features.</fo:marker><fo:block font-size="17.28pt">Variants and composite features.</fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sometimes you want to create a shorcut for some set of
        features. For example, <fo:inline font-family="monospace">release</fo:inline> is a value of the
        <fo:inline font-family="monospace">variant</fo:inline> and is a shortcut for a set of features.
        </fo:block>.

      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It is possible to define your build variants. For example:
<fo:block id="id649514" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
variant crazy : &lt;optimization&gt;speed &lt;inlining&gt;off
                &lt;debug-symbols&gt;on &lt;profiling&gt;on ;
</fo:block>
        will define a new variant with the specified set of properties. You
        can also extend an existing variant:
<fo:block id="id649526" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
variant super_release : release : &lt;define&gt;USE_ASM ;
</fo:block>
        In this case, <fo:inline font-family="monospace">super_release</fo:inline> will expand to all properties
        specified by <fo:inline font-family="monospace">release</fo:inline>, and the additional one you've specified.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You are not restricted to using the <fo:inline font-family="monospace">variant</fo:inline> feature
      only. Here's example which defines a brand new feature:
<fo:block id="id649560" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
feature parallelism : mpi fake none : composite link-incompatible ;
feature.compose &lt;parallelism&gt;mpi : &lt;library&gt;/mpi//mpi/&lt;parallelism&gt;none ;
feature.compose &lt;parallelism&gt;fake : &lt;library&gt;/mpi//fake/&lt;parallelism&gt;none ;
</fo:block>
        This will allow you to specify value of feature
        <fo:inline font-family="monospace">parallelism</fo:inline>, which will expand to link to the necessary
        library. 
      </fo:block></fo:block><fo:block id="bbv2.extending.rules"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Main target rules</fo:marker><fo:block font-size="20.736pt">Main target rules</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      The main target rule is what creates a top-level target, for example "exe" or
      "lib". It's quite likely that you'll want to declare your own and
      there are as many as three ways to do that.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The first is the simplest, but is sufficient in a number of
      cases. Just write a wrapper rule, which will redirect to any of the
      existing rules. For example, you have only one library per directory and
      want all cpp files in the directory to be compiled. You can achieve this
      effect with:
<fo:block id="id649604" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib codegen : [ glob *.cpp ] ;
</fo:block>
      but what if you want to make it even simple. Then, you add the following
      definition to the project-root.jam file:
<fo:block id="id649613" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
rule glib ( name : extra-sources * : requirements * )
{
    lib $(name) : [ glob *.cpp ] $(extra-sources) : $(requirements) ;
}
</fo:block>
which would allow to reduce Jamfile to
<fo:block id="id649623" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
glib codegen ;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The second approach is suitable when your target rule should just
      produce a target of specific type. Then, when declaring a type you
      should tell Boost.Build that a main target rule should be created.
      For example, if you create a module "obfuscate.jam" containing:

<fo:block id="id649636" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
import type ;
type.register OBFUSCATED_CPP  : ocpp : : main ;

import generators ;
generators.register-standard obfuscate.file : CPP : OBFUSCATED_CPP ;
</fo:block>
      and import that module, you'll be able to use the rule "obfuscated-cpp"
      in Jamfiles, which will convert source to the OBFUSCATED_CPP type.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      The remaining method is to declare your own main target class. The
      simplest example of this can be found in "build/alias.jam" file. The
      current V2 uses this method when transformations are relatively
      complex. However, we might deprecate this approach. If you find that you
      need to use it (that is, the first two approaches are not sufficient),
      please let us know by posting to the mailing list.
    </fo:block></fo:block><fo:block id="bbv2.extending.toolset_modules"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Toolset modules</fo:marker><fo:block font-size="20.736pt">Toolset modules</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If your extensions will be used only on one project, they can be
      placed in a separate <fo:inline font-family="monospace">.jam</fo:inline> file which will be
      imported by your <fo:inline font-family="monospace">project-root.jam</fo:inline>. If the
      extensions will be used on many projects, the users will thank you for 
      a finishing touch.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The standard way to use a tool in Boost.Build is the
      <fo:inline font-family="monospace">using</fo:inline> rule. To make it work, you module should provide an
      <fo:inline font-family="monospace">init</fo:inline> rule. The rule will be called with the same parameters
      which were passed to the <fo:inline font-family="monospace">using</fo:inline> rule. The set of allowed
      parameters is determined by you. For example, you can allow the user to
      specify paths, tool version, or tool options.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Here are some guidelines which help to make Boost.Build more
      consistent:
      <fo:list-block id="id649719" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id649720" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The <fo:inline font-family="monospace">init</fo:inline> rule should never fail. Even if
          user provided a wrong path, you should emit a warning and go
          on. Configuration may be shared between different machines, and
          wrong values on one machine can be OK on another.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649734" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Prefer specifying command to be executed to specifying
            path. First of all, this gives more control: it's possible to
            specify
<fo:block id="id649741" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
/usr/bin/g++-snapshot
time g++
</fo:block>
            as the command. Second, while some tools have a logical
            "installation root", it better if user don't have to remember if
            a specific tool requires a full command or a path.            
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649752" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Check for multiple initialization. A user can try to
            initialize the module several times. You need to check for this
            and decide what to do. Typically, unless you support several
            versions of a tool, duplicate initialization is a user error. If
            tool version can be specified during initialization, make sure the
            version is either always specified, or never specified (in which
            case the tool is initialied only once). For example, if you allow:
<fo:block id="id649764" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
using yfc ;
using yfc : 3.3 ;
using yfc : 3.4 ;
</fo:block>
            Then it's not clear if the first initialization corresponds to
            version 3.3 of the tool, version 3.4 of the tool, or some other
            version. This can lead to building twice with the same version.
            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649776" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If possible, the <fo:inline font-family="monospace">init</fo:inline> must be callable
          with no parameters. In which case, it should try to autodetect all
          the necessary information, for example, by looking for a tool in
          <fo:inline font-family="monospace">PATH</fo:inline> or in common installation locations. Often this
          is possible and allows the user to simply write:
<fo:block id="id649795" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
using yfc ;
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649800" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Consider using facilities in the
          <fo:inline font-family="monospace">tools/common</fo:inline> module. You can take a look at how
          <fo:inline font-family="monospace">tools/gcc.jam</fo:inline> uses that module in the <fo:inline font-family="monospace">init</fo:inline> rule.
          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Detailed reference</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Detailed reference</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="bbv2.reference"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Detailed reference</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="bbv2.reference.general"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">General information</fo:marker><fo:block font-size="20.736pt">General information</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="bbv2.reference.init"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Initialization</fo:marker><fo:block font-size="17.28pt">Initialization</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">bjam's first job upon startup is to load the Jam code which
        implements the build system. To do this, it searches for a file
        called "boost-build.jam", first in the invocation directory, then
        in its parent and so forth up to the filesystem root, and finally
        in the directories specified by the environment variable
        BOOST_BUILD_PATH. When found, the file is interpreted, and should
        specify the build system location by calling the boost-build
        rule:</fo:block><fo:block id="id649858" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
rule boost-build ( location ? )
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        If location is a relative path, it is treated as relative to
        the directory of boost-build.jam. The directory specified by
        location and directories in BOOST_BUILD_PATH are then searched for
        a file called bootstrap.jam which is interpreted and is expected to
        bootstrap the build system. This arrangement allows the build
        system to work without any command-line or environment variable
        settings. For example, if the build system files were located in a
        directory "build-system/" at your project root, you might place a
        boost-build.jam at the project root containing:

<fo:block id="id649876" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
boost-build build-system ;
</fo:block>

        In this case, running bjam anywhere in the project tree will
        automatically find the build system.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The default "bootstrap.jam", after loading some standard
        definitions, loads two files, which can be provided/customised by
        user: "site-config.jam" and "user-config.jam".</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Locations where those files a search are summarized below:</fo:block><fo:block span="none"><fo:block id="bbv2.reference.init.config" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;1.&#xA0;Search paths for configuration files</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-column column-number="3"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">&#xA0;</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">site-config.jam</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">user-config.jam</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Linux</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">/etc</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">$HOME</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">$BOOST_BUILD_PATH</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">$HOME</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">$BOOST_BUILD_PATH</fo:block></fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block>Windows</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">$SystemRoot</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">$HOME</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">$BOOST_BUILD_PATH</fo:block></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">$HOME</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">$BOOST_BUILD_PATH</fo:block></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        Boost.Build comes with default versions of those files,
        which can serve as templates for customized versions.
      </fo:block></fo:block><fo:block id="bbv2.reference.commandline"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Command line</fo:marker><fo:block font-size="17.28pt">Command line</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The command line may contain:</fo:block><fo:list-block id="id649974" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id649976" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Jam options,</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649980" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Boost.Build <fo:basic-link internal-destination="bbv2.reference.init.options">options</fo:basic-link>,</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id649995" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Command line arguments</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block id="bbv2.reference.init.args"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Command line arguments</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
          Command line arguments specify targets and build
          request using the following rules.
        </fo:block><fo:list-block id="id650013" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id650014" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
              An argument which does not contain slashes or the "="
              symbol is either a value of an implicit feature, or target to
              be built. It is taken to be value of a feature if appropriate
              feature exists. Otherwise, it is considered a <fo:basic-link internal-destination="bbv2.reference.ids">target id</fo:basic-link>. Special target name "clean"
              has the same effect as "--clean" option.
            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650033" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
              An argument with either slashes or the "=" symbol specifies
              a number of <fo:basic-link internal-destination="bbv2.reference.buildreq">build
                request</fo:basic-link>
              elements. In the simplest form, it's just a set of properties,
              separated by slashes, which become a single build request
              element, for example:

<fo:block id="id650051" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
borland/&lt;runtime-link&gt;static
</fo:block>

              More complex form is used to save typing. For example,
              instead of

<fo:block id="id650061" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
borland/runtime-link=static borland/runtime-link=dynamic
</fo:block>

              one can use

<fo:block id="id650069" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
borland/runtime-link=static,dynamic
</fo:block>

              Exactly, the conversion from argument to build request
              elements is performed by (1) splitting the argument at each slash,
              (2) converting each split part into a set of properties and (3)
              taking all possible combination of the property sets. Each split
              part should have the either the form

<fo:block id="id650082" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-style="italic">feature-name</fo:inline>=<fo:inline font-style="italic">feature-value1</fo:inline>[","<fo:inline font-style="italic">feature-valueN</fo:inline>]*   
</fo:block>

              or, in case of implicit feature

<fo:block id="id650100" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace"><fo:inline font-style="italic">feature-value1</fo:inline>[","<fo:inline font-style="italic">feature-valueN</fo:inline>;]*   
</fo:block>

              and will be converted into property set

<fo:block id="id650115" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
&lt;feature-name&gt;feature-value1 .... &lt;feature-name&gt;feature-valueN
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
          For example, the command line

<fo:block id="id650125" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
target1 debug gcc/runtime-link=dynamic,static
</fo:block>

          would cause target called <fo:inline font-family="monospace">target1</fo:inline> to be rebuilt in
          debug mode, except that for gcc, both dynamically and statically
          linked binaries would be created.
        </fo:block></fo:block><fo:block id="bbv2.reference.init.options"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Command line options</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">All of the Boost.Build options start with the "--" prefix.
          They are described in the following table.</fo:block><fo:block span="none"><fo:block id="id650155" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Table&#xA0;2.&#xA0;Command line options</fo:block><fo:table border-before-width.conditionality="retain" border-collapse="collapse" border-left-style="solid" border-right-style="solid" border-top-style="solid" border-bottom-style="solid" border-left-width="0.5pt" border-right-width="0.5pt" border-top-width="0.5pt" border-bottom-width="0.5pt" border-left-color="black" border-right-color="black" border-top-color="black" border-bottom-color="black" width="100%"><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-header><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block font-weight="bold">Option</fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block font-weight="bold">Description</fo:block></fo:table-cell></fo:table-row></fo:table-header><fo:table-body><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">--version</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Prints information on Boost.Build and Boost.Jam
                  versions.</fo:block></fo:table-cell></fo:table-row><fo:table-row id="bbv2.reference.init.options.help"><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">--help</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Access to the online help system. This prints general
                  information on how to use the help system with additional
                  --help* options.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">--clean</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Removes everything instead of building. Unlike
                  <fo:inline font-family="monospace">clean</fo:inline> target in make, it is possible to clean only
                  some targets.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">--debug</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Enables internal checks.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">--dump-projects</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Cause the project structure to be output.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">--no-error-backtrace</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:block>Don't print backtrace on errors. Primary useful for
                  testing.</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt" border-right-width="0.5pt" border-right-style="solid" border-right-color="black"><fo:block><fo:inline font-family="monospace">--ignore-config</fo:inline></fo:block></fo:table-cell><fo:table-cell padding-left="2pt" padding-right="2pt" padding-top="2pt" padding-bottom="2pt"><fo:block>Do not load <fo:inline font-family="monospace">site-config.jam</fo:inline> and
                  <fo:inline font-family="monospace">user-config.jam</fo:inline></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="bbv2.reference.jamfiles"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Writing Jamfiles</fo:marker><fo:block font-size="20.736pt">Writing Jamfiles</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This section describes specific information about writing Jamfiles.</fo:block><fo:block id="bbv2.reference.headers"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Generated headers</fo:marker><fo:block font-size="17.28pt">Generated headers</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Usually, Boost.Build handles implicit dependendies completely
        automatically. For example, for C++ files, all <fo:inline font-family="monospace">#include</fo:inline>
        statements are found and handled. The only aspect where user help
        might be needed is implicit dependency on generated files.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">By default, Boost.Build handles such dependencies within one
        main target. For example, assume that main target "app" has two
        sources, "app.cpp" and "parser.y". The latter source is converted
        into "parser.c" and "parser.h". Then, if "app.cpp" includes
        "parser.h", Boost.Build will detect this dependency. Moreover,
        since "parser.h" will be generated into a build directory, the
        path to that directory will automatically added to include
        path.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Making this mechanism work across main target boundaries is
        possible, but imposes certain overhead. For that reason, if
        there's implicit dependency on files from other main targets, the
        <fo:inline font-family="monospace">&lt;implicit-dependency&gt;</fo:inline> [ link ] feature must
        be used, for example:</fo:block><fo:block id="id650336" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib parser : parser.y ;
exe app : app.cpp : &lt;implicit-dependency&gt;parser ;
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        The above example tells the build system that when scanning
        all sources of "app" for implicit-dependencies, it should consider
        targets from "parser" as potential dependencies.
      </fo:block></fo:block></fo:block><fo:block id="bbv2.reference.buildprocess"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Build process</fo:marker><fo:block font-size="20.736pt">Build process</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The general overview of the build process was given in the 
      <fo:basic-link internal-destination="bbv2.advanced.build_process">user documentation</fo:basic-link>.
      This section provides additional details, and some specific rules.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To recap, building a target with specific properties includes the
      following steps:
      <fo:list-block id="id650376" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id650383" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>applying default build,</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650387" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>selecting the main target alternative to use,
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650392" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>determining "common" properties</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650395" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>building targets referred by the sources list and
            dependency properties</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650400" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>adding the usage requirements produces when building
            dependencies to the "common" properties</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650406" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>building the target using generators</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650410" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>7.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>computing the usage requirements to be returned</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="bbv2.reference.buildprocess.alternatives"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Alternative selection</fo:marker><fo:block font-size="17.28pt">Alternative selection</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When there are several alternatives, one of them must be
        selected. The process is as follows:</fo:block><fo:list-block id="id650429" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id650435" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            For each alternative <fo:inline font-style="italic">condition</fo:inline> is defined
            as the set of base properies in requirements. [Note: it might be
            better to specify the condition explicitly, as in
            conditional requirements].
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650447" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            An alternative is viable only if all properties in condition
            are present in build request.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650452" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            If there's one viable alternative, it's choosen. Otherwise,
            an attempt is made to find one best alternative. An alternative
            a is better than another alternative b, iff set of properties
            in b's condition is strict subset of the set of properities of
            'a's condition. If there's one viable alternative, which is
            better than all other, it's selected. Otherwise, an error is
            reported.
          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="bbv2.reference.buildprocess.common"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Determining common properties</fo:marker><fo:block font-size="17.28pt">Determining common properties</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The "common" properties is a somewhat artificial term. Those are
        the intermediate property set from which both the build request for
        dependencies and properties for building the target are derived.
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Since default build and alternatives are already handled, we have
        only two inputs: build requests and requirements. Here are the rules
        about common properties.
      </fo:block><fo:list-block id="id650486" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id650492" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Non-free feature can have only one
            value</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650497" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A non-conditional property in requirement in always
            present in common properties.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650502" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>A property in build request is present in
            common properties, unless (2) tells otherwise.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650508" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If either build request, or requirements (non-conditional
            or conditional) include an expandable property (either composite,
            or property with specified subfeature value), the behaviour is
            equivalent to explicitly adding all expanded properties to build
            request or requirements.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650517" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If requirements include a conditional property, and
            condiiton of this property is true in context of common
            properties, then the conditional property should be in common
            properties as well.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650525" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>If no value for a feature is given by other rules
            here, it has default value in common properties.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Those rules are declarative, they don't specify how to compute the
        common properties. However, they provide enough information for the
        user. The important point is the handling of conditional
        requirements. The condition can be satisfied either by property in
        build request, by non-conditional requirements, or even by another
        conditional property. For example, the following example works as
        expected:
<fo:block id="id650540" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe a : a.cpp 
      : &lt;toolset&gt;gcc:&lt;variant&gt;release 
        &lt;variant&gt;release:&lt;define&gt;FOO ;
</fo:block></fo:block></fo:block></fo:block><fo:block id="bbv2.reference.definitions"><fo:block/><fo:block id="bbv2.reference.features"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Features and properties</fo:marker><fo:block font-size="17.28pt">Features and properties</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A <fo:inline font-style="italic">feature</fo:inline> is a normalized (toolset-independent)
        aspect of a build configuration, such as whether inlining is
        enabled. Feature names may not contain the '<fo:inline font-family="monospace">&gt;</fo:inline>'
        character.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each feature in a build configuration has one or more
        associated <fo:inline font-style="italic">value</fo:inline>s. Feature values for non-free features
        may not contain the '<fo:inline font-family="monospace">&lt;</fo:inline>', '<fo:inline font-family="monospace">:</fo:inline>', or
        '<fo:inline font-family="monospace">=</fo:inline>' characters. Feature values for free features may not
        contain the '<fo:inline font-family="monospace">&lt;</fo:inline>' character.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A <fo:inline font-style="italic">property</fo:inline> is a (feature,value) pair, expressed as
        &lt;feature&gt;value.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A <fo:inline font-style="italic">subfeature</fo:inline> is a feature which only exists in the
        presence of its parent feature, and whose identity can be derived
        (in the context of its parent) from its value. A subfeature's
        parent can never be another subfeature. Thus, features and their
        subfeatures form a two-level hierarchy.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A <fo:inline font-style="italic">value-string</fo:inline> for a feature <fo:inline font-weight="bold">F</fo:inline> is a string of
        the form
        <fo:inline font-family="monospace">value-subvalue1-subvalue2</fo:inline>...<fo:inline font-family="monospace">-subvalueN</fo:inline>, where
        <fo:inline font-family="monospace">value</fo:inline> is a legal value for <fo:inline font-weight="bold">F</fo:inline> and
        <fo:inline font-family="monospace">subvalue1</fo:inline>...<fo:inline font-family="monospace">subvalueN</fo:inline> are legal values of some
        of <fo:inline font-weight="bold">F</fo:inline>'s subfeatures. For example, the properties
        <fo:inline font-family="monospace">&lt;toolset&gt;gcc &lt;toolset-version&gt;3.0.1</fo:inline> can be
        expressed more conscisely using a value-string, as
        <fo:inline font-family="monospace">&lt;toolset&gt;gcc-3.0.1</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A <fo:inline font-style="italic">property set</fo:inline> is a set of properties (i.e. a
        collection without duplicates), for instance:
        <fo:inline font-family="monospace">&lt;toolset&gt;gcc &lt;runtime-link&gt;static</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A <fo:inline font-style="italic">property path</fo:inline> is a property set whose elements have
        been joined into a single string separated by slashes. A property
        path representation of the previous example would be
        <fo:inline font-family="monospace">&lt;toolset&gt;gcc/&lt;runtime-link&gt;static</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A <fo:inline font-style="italic">build specification</fo:inline> is a property set which fully
        describes the set of features used to build a target.</fo:block><fo:block id="bbv2.reference.features.validity"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Property Validity</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
          For <fo:basic-link internal-destination="bbv2.reference.features.attributes.free">free</fo:basic-link>
            features, all values are valid. For all other features,
          the valid values are explicitly specified, and the build
          system will report an error for the use of an invalid
          feature-value. Subproperty validity may be restricted so
          that certain values are valid only in the presence of
          certain other subproperties. For example, it is possible
          to specify that the <fo:inline font-family="monospace">&lt;gcc-target&gt;mingw</fo:inline>
          property is only valid in the presence of
          <fo:inline font-family="monospace">&lt;gcc-version&gt;2.95.2</fo:inline>.
        </fo:block></fo:block><fo:block id="bbv2.reference.features.attributes"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Feature Attributes</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each feature has a collection of zero or more of the following
          attributes. Feature attributes are low-level descriptions of how the
          build system should interpret a feature's values when they appear in
          a build request. We also refer to the attributes of properties, so
          that an <fo:inline font-style="italic">incidental</fo:inline> property, for example, is
          one whose feature has the <fo:inline font-style="italic">incidental</fo:inline>
          attribute.</fo:block><fo:list-block id="id650824" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id650826" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-style="italic">incidental</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Incidental features are assumed not to affect build
              products at all. As a consequence, the build system may use
              the same file for targets whose build specification differs
              only in incidental features. A feature which controls a
              compiler's warning level is one example of a likely
              incidental feature.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Non-incidental features are assumed to affect build
              products, so the files for targets whose build specification
              differs in non-incidental features are placed in different
              directories as described in "target paths" below. [ where? ]
            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650847" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:wrapper id="bbv2.reference.features.attributes.propagated"/><fo:inline font-style="italic">propagated</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Features of this kind are
              propagated to dependencies. That is, if a <fo:basic-link internal-destination="bbv2.advanced.targets.main">main target</fo:basic-link> is built using a
              propagated
              property, the build systems attempts to use the same property
              when building any of its dependencies as part of that main
              target. For instance, when an optimized exectuable is
              requested, one usually wants it to be linked with optimized
              libraries. Thus, the <fo:inline font-family="monospace">&lt;optimization&gt;</fo:inline> feature is
              propagated.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650887" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:wrapper id="bbv2.reference.features.attributes.free"/><fo:inline font-style="italic">free</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Most features have a finite set of allowed values, and can
              only take on a single value from that set in a given build
              specification. Free features, on the other hand, can have
              several values at a time and each value can be an arbitrary
              string. For example, it is possible to have several
              preprocessor symbols defined simultaneously:</fo:block><fo:block id="id650909" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
&lt;define&gt;NDEBUG=1 &lt;define&gt;HAS_CONFIG_H=1
</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650915" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-style="italic">optional</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An optional feature is a feature which is not required to
              appear in a build specification. Every non-optional non-free
              feature has a default value which is used when a value for
              the feature is not otherwise specified, either in a target's
              requirements or in the user's build request. [A feature's
              default value is given by the first value listed in the
              feature's declaration. -- move this elsewhere - dwa]</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650931" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-style="italic">symmetric</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A symmetric feature's default value is not automatically
              included in <fo:basic-link internal-destination="bbv2.reference.variants">build variants</fo:basic-link>.  Normally
              a feature only generates a subvariant directory when its
              value differs from the value specified by the build variant,
              leading to an assymmetric subvariant directory structure for
              certain values of the feature. A symmetric feature, when
              relevant to the toolset, always generates a corresponding
              subvariant directory.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650958" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-style="italic">path</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The value of a path feature specifies a path. The path is
              treated as relative to the directory of Jamfile where path
              feature is used and is translated appropriately by the build
              system when the build is invoked from a different
              directory</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id650970" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-style="italic">implicit</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Values of implicit features alone identify the feature.
              For example, a user is not required to write
              "&lt;toolset&gt;gcc", but can simply write "gcc". Implicit
              feature names also don't appear in variant paths, although
              the values do. Thus: bin/gcc/... as opposed to
              bin/toolset-gcc/.... There should typically be only a few
              such features, to avoid possible name clashes.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id651002" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-style="italic">composite</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Composite features actually correspond to groups of
              properties. For example, a build variant is a composite
              feature. When generating targets from a set of build
              properties, composite features are recursively expanded and
              <fo:inline font-style="italic">added</fo:inline> to the build property set, so rules can find
              them if neccessary. Non-composite non-free features override
              components of composite features in a build property set.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id651022" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block><fo:inline font-style="italic">dependency</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The value of dependency feature if a target reference.
              When used for building of a main target, the value of
              dependency feature is treated as additional dependency.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For example, dependency features allow to state that
              library A depends on library B. As the result, whenever an
              application will link to A, it will also link to B.
              Specifying B as dependency of A is different from adding B to
              the sources of A. </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Features which are neither free nor incidental are called
          <fo:inline font-style="italic">base</fo:inline> features.</fo:block></fo:block><fo:block id="bbv2.reference.features.declaration"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Feature Declaration</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The low-level feature declaration interface is the
          <fo:inline font-family="monospace">feature</fo:inline> rule from the
          <fo:inline font-family="monospace">feature</fo:inline> module:
          
<fo:block id="id651074" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
rule feature ( name : allowed-values * : attributes * )
</fo:block>
          
          A feature's allowed-values may be extended with the
          <fo:inline font-family="monospace">feature.extend</fo:inline> rule.
        </fo:block></fo:block></fo:block><fo:block id="bbv2.reference.variants"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Build Variants</fo:marker><fo:block font-size="17.28pt">Build Variants</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        A build variant, or (simply variant) is a special kind of composite
        feature which automatically incorporates the default values of
        features that . Typically you'll want at least two separate
        variants: one for debugging, and one for your release code. [
        Volodya says: "Yea, we'd need to mention that it's a composite
        feature and describe how they are declared, in pacticular that
        default values of non-optional features are incorporated into
        build variant automagically. Also, do we wan't some variant
        inheritance/extension/templates. I don't remember how it works in
        V1, so can't document this for V2.". Will clean up soon -DWA ]
      </fo:block></fo:block><fo:block id="bbv2.reference.variants.proprefine"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Property refinement</fo:marker><fo:block font-size="17.28pt">Property refinement</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When a target with certain properties is requested, and that
        target requires some set of properties, it is needed to find the
        set of properties to use for building. This process is called
        <fo:inline font-style="italic">property refinement</fo:inline> and is performed by these rules</fo:block><fo:list-block id="id651133" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id651139" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            If original properties and required properties are not
            link-compatible, refinement fails.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id651145" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            Each property in the required set is added to the original
            property set
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id651150" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            If the original property set includes property with a different
            value of non free feature, that property is removed.
          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="bbv2.reference.variants.propcond"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Conditional properties</fo:marker><fo:block font-size="17.28pt">Conditional properties</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Sometime it's desirable to apply certain requirements only for
        a specific combination of other properties. For example, one of
        compilers that you use issues a pointless warning that you want to
        suppress by passing a command line option to it. You would not
        want to pass that option to other compilers. Conditional
        properties allow you to do just that. Their syntax is:</fo:block><fo:block id="id651176" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
        property ( "," property ) * ":" property
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        For example, the problem above would be solved by:

<fo:block id="id651186" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe hello : hello.cpp : &lt;toolset&gt;yfc:&lt;cxxflags&gt;-disable-pointless-warning ;
</fo:block></fo:block></fo:block><fo:block id="bbv2.reference.ids"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Target identifiers and references</fo:marker><fo:block font-size="17.28pt">Target identifiers and references</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-style="italic">Target identifier</fo:inline> is used to denote a
        target. The syntax is:</fo:block><fo:block id="id651208" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
target-id -&gt; (project-id | target-name | file-name )
              | (project-id | directory-name) "//" target-name   
project-id -&gt; path
target-name -&gt; path
file-name -&gt; path
directory-name -&gt; path                  
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        This grammar allows some elements to be recognized as either
        
        <fo:list-block id="id651222" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id651224" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
              project id (at this point, all project ids start with slash).
            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id651229" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
              name of target declared in current Jamfile (note that target
              names may include slash).
            </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id651235" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
              a regular file, denoted by absolute name or name relative to
              project's sources location.
            </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>

        To determine the real meaning a check is made if project-id
        by the specified name exists, and then if main target of that
        name exists. For example, valid target ids might be:

<fo:block id="id651246" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
a                                    -- target in current project
lib/b.cpp                            -- regular file
/boost/thread                        -- project "/boost/thread"
/home/ghost/build/lr_library//parser -- target in specific project
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold">Rationale:</fo:inline>Target is separated from project by special
        separator (not just slash), because:</fo:block><fo:list-block id="id651264" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id651266" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            It emphasises that projects and targets are different things.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id651271" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            It allows to have main target names with slashes. 

            </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" id="bbv2.reference.targets.references"><fo:inline font-style="italic">Target reference</fo:inline> is used to
        specify a source target, and may additionally specify desired
        properties for that target. It has this syntax:</fo:block><fo:block id="id651290" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
target-reference -&gt; target-id [ "/" requested-properties ]
requested-properties -&gt; property-path
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        For example,

        <fo:block id="id651302" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
          exe compiler : compiler.cpp libs/cmdline/&lt;optimization&gt;space ;
        </fo:block>
        
        would cause the version of <fo:inline font-family="monospace">cmdline</fo:inline> library,
        optimized for space, to be linked in even if the
        <fo:inline font-family="monospace">compiler</fo:inline> executable is build with optimization for
        speed.
      </fo:block></fo:block></fo:block><fo:block id="bbv2.reference.generators"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Generators</fo:marker><fo:block font-size="20.736pt">Generators</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id651336"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Warning</fo:block><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The information is this section is likely to be outdated
        and misleading. 
      </fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To construct a main target with given properties from sources,
      it is required to create a dependency graph for that main target,
      which will also include actions to be run. The algorithm for
      creating the dependency graph is described here.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The fundamental concept is <fo:inline font-style="italic">generator</fo:inline>. If encapsulates
      the notion of build tool and is capable to converting a set of
      input targets into a set of output targets, with some properties.
      Generator matches a build tool as closely as possible: it works
      only when the tool can work with requested properties (for
      example, msvc compiler can't work when requested toolset is gcc),
      and should produce exactly the same targets as the tool (for
      example, if Borland's linker produces additional files with debug
      information, generator should also).</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Given a set of generators, the fundamental operation is to
      construct a target of a given type, with given properties, from a
      set of targets. That operation is performed by rule
      <fo:inline font-family="monospace">generators.construct</fo:inline> and the used algorithm is described
      below.</fo:block><fo:block id="id651373"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Selecting and ranking viable generators</fo:marker><fo:block font-size="17.28pt">Selecting and ranking viable generators</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each generator, in addition to target types that it can
        produce, have attribute that affects its applicability in
        particular sitiation. Those attributes are:</fo:block><fo:list-block id="id651382" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id651388" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            Required properties, which are properties absolutely
            necessary for the generator to work. For example, generator
            encapsulating the gcc compiler would have &lt;toolset&gt;gcc as
            required property.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id651399" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            Optional properties, which increase the generators
            suitability for a particual build.
          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        Generator's required and optional properties may not include
        either free or incidental properties. (Allowing this would
        greatly complicate caching targets).
      </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When trying to construct a target, the first step is to select
        all possible generators for the requested target type, which
        required properties are a subset of requested properties.
        Generators which were already selected up the call stack are
        excluded. In addition, if any composing generators were selected
        up the call stack, all other composing generators are ignored
        (TODO: define composing generators). The found generators
        are assigned a rank, which is the number of optional properties
        present in requested properties. Finally, generators with highest
        rank are selected for futher processing.</fo:block></fo:block><fo:block id="id651424"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Running generators</fo:marker><fo:block font-size="17.28pt">Running generators</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When generators are selected, each is run to produce a list of
        created targets. This list might include targets which are not of
        requested types, because generators create the same targets as
        some tool, and tool's behaviour is fixed. (Note: should specify
        that in some cases we actually want extra targets). If generator
        fails, it returns an empty list. Generator is free to call
        'construct' again, to convert sources to the types it can handle.
        It also can pass modified properties to 'construct'. However, a
        generator is not allowed to modify any propagated properties,
        otherwise when actually consuming properties we might discover
        that the set of propagated properties is different from what was
        used for building sources.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For all targets which are not of requested types, we try to
        convert them to requested type, using a second call to
        <fo:inline font-family="monospace">construct</fo:inline>. This is done in order to support
        transformation sequences where single source file expands to
        several later. See <fo:basic-link external-destination="http://groups.yahoo.com/group/jamboost/message/1667">this
          message</fo:basic-link> for details.</fo:block></fo:block><fo:block id="id651466"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Selecting dependency graph</fo:marker><fo:block font-size="17.28pt">Selecting dependency graph</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        After all generators are run,
        it is necessary to decide which of successfull invocation will be
        taken as final result. At the moment, this is not done. Instead,
        it is checked whether all successfull generator invocation
        returned the same target list. Error is issued otherwise.
      </fo:block></fo:block><fo:block id="id651478"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Property adjustment</fo:marker><fo:block font-size="17.28pt">Property adjustment</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Because target location is determined by the build system, it
        is sometimes necessary to adjust properties, in order to not
        break actions. For example, if there's an action which generates
        a header, say "a_parser.h", and a source file "a.cpp" which
        includes that file, we must make everything work as if a_parser.h
        is generated in the same directory where it would be generated
        without any subvariants.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Correct property adjustment can be done only after all targets
        are created, so the approach taken is:</fo:block><fo:list-block id="id651496" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id651503" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            When dependency graph is constructed, each action can be
            assigned a rule for property adjustment.
          </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id651509" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
            When virtual target is actualized, that rule is run and
            return the final set of properties. At this stage it can use
            information of all created virtual targets.
          </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In case of quoted includes, no adjustment can give 100% correct
        results. If target dirs are not changed by build system, quoted
        includes are searched in "." and then in include path, while angle
        includes are searched only in include path. When target dirs are
        changed, we'd want to make quoted includes to be search in "." then in
        additional dirs and then in the include path and make angle includes
        be searched in include path, probably with additional paths added at
        some position. Unless, include path already has "." as the first
        element, this is not possible. So, either generated headers should not
        be included with quotes, or first element of include path should be
        ".", which essentially erases the difference between quoted and angle
        includes. <fo:inline font-weight="bold">Note:</fo:inline> the only way to get
        "." as include path into compiler command line is via verbatim
        compiler option. In all other case, Boost.Build will convert "." into
        directory where it occurs.</fo:block></fo:block><fo:block id="id651542"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Transformations cache</fo:marker><fo:block font-size="17.28pt">Transformations cache</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
        Under certain conditions, an
        attempt is made to cache results of transformation search. First,
        the sources are replaced with targets with special name and the
        found target list is stored. Later, when properties, requested
        type, and source type are the same, the store target list is
        retrieved and cloned, with appropriate change in names.
      </fo:block></fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Frequently Asked Questions</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Frequently Asked Questions</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="bbv2.faq"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block margin-left="-4pc"><fo:block font-size="24.8832pt" font-weight="bold"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Frequently Asked Questions</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id651567"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
        I'm getting "Duplicate name of actual target" error. What
        does it mean?
      </fo:marker><fo:block font-size="20.736pt">
        I'm getting "Duplicate name of actual target" error. What
        does it mean?
      </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">    
    The most likely case is that you're trying to
    compile the same file twice, with almost the same,
    but differing properties. For example:

<fo:block id="id651578" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe a : a.cpp : &lt;include&gt;/usr/local/include ;
exe b : a.cpp ;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The above snippet requires two different compilations
    of 'a.cpp', which differ only in 'include' property.
    Since the 'include' property is free, Boost.Build
    can't generate two objects files into different directories.
    On the other hand, it's dangerous to compile the file only
    once -- maybe you really want to compile with different
    includes.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    To solve this issue, you need to decide if file should
    be compiled once or twice.</fo:block><fo:list-block id="id651598" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id651604" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Two compile file only once, make sure that properties
      are the same:

<fo:block id="id651609" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe a : a.cpp : &lt;include&gt;/usr/local/include ;
exe b : a.cpp : &lt;include&gt;/usr/local/include ;
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id651617" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
      If changing the properties is not desirable, for example
      if 'a' and 'b' target have other sources which need
      specific properties, separate 'a.cpp' into it's own target:

<fo:block id="id651624" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
obj a_obj : a.cpp : &lt;include&gt;/usr/local/include ;
exe a : a_obj ;
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id651632" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
      To compile file twice, you can make the object file local
      to the main target:

<fo:block id="id651637" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
      exe a : [ obj a_obj : a.cpp ] : &lt;include&gt;/usr/local/include ;
      exe b : [ obj a_obj : a.cpp ] ;
</fo:block></fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
   A good question is why Boost.Build can't use some of the above
   approaches automatically. The problem is that such magic would
   require additional implementation complexities and would only
   help in half of the cases, while in other half we'd be silently
   doing the wrong thing. It's simpler and safe to ask user to
   clarify his intention in such cases.
   </fo:block></fo:block><fo:block id="id651656"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
      Accessing environment variables
      </fo:marker><fo:block font-size="20.736pt">
      Accessing environment variables
      </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">    
      Many users would like to use environment variables in Jamfiles, for
      example, to control location of external libraries. In many cases you
      better declare those external libraries in the site-config.jam file, as
      documented in the <fo:basic-link internal-destination="bbv2.recipies.site-config">recipes
      section</fo:basic-link>. However, if the users already have the environment variables set
      up, it's not convenient to ask them to set up site-config.jam files as
      well, and using environment variables might be reasonable.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In Boost.Build V2, each Jamfile is a separate namespace, and the
    variables defined in environment is imported into the global
    namespace. Therefore, to access environment variable from Jamfile, you'd
    need the following code:
<fo:block id="id651687" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
import modules ;
local SOME_LIBRARY_PATH = [ modules.peek : SOME_LIBRARY_PATH ] ;
exe a : a.cpp : &lt;include&gt;$(SOME_LIBRARY_PATH) ;
</fo:block></fo:block></fo:block><fo:block id="id651695"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
        How to control properties order?
      </fo:marker><fo:block font-size="20.736pt">
        How to control properties order?
      </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For internal reasons, Boost.Build sorts all the properties
    alphabetically. This means that if you write:
<fo:block id="id651704" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe a : a.cpp : &lt;include&gt;b &lt;include&gt;a ;
</fo:block>
      then the command line with first mention the "a" include directory, and
      then "b", even though they are specified in the opposite order. In most
      cases, the user doesn't care. But sometimes the order of includes, or
      other properties, is important. For example, if one uses both the C++
      Boost library and the "boost-sandbox" (libraries in development), then
      include path for boost-sandbox must come first, because some headers may
      override ones in C++ Boost. For such cases, a special syntax is
      provided:
<fo:block id="id651721" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe a : a.cpp : &lt;include&gt;a&amp;&amp;b ;        
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">&amp;&amp;</fo:inline> symbols separate values of an
      property, and specify that the order of the values should be preserved. You
      are advised to use this feature only when the order of properties really
      matters, and not as a convenient shortcut. Using it everywhere might
      negatively affect performance.
    </fo:block></fo:block><fo:block id="id651742"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">
      How to control the library order on Unix?
    </fo:marker><fo:block font-size="20.736pt">
      How to control the library order on Unix?
    </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">On the Unix-like operating systems, the order in which static
      libraries are specified when invoking the linker is important, because by
      default, the linker uses one pass though the libraries list. Passing the
      libraries in the incorrect order will lead to a link error. Further, this
      behaviour is often used to make one library override symbols from
      another. So, sometimes it's necessary to force specific order of
      libraries.    
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Boost.Build tries to automatically compute the right order.  The
      primary rule is that if library a "uses" library b, then library a will
      appear on the command line before library b. Library a is considered to
      use b is b is present either in the sources of a or in its
      requirements. To explicitly specify the use relationship one can use the
      &lt;use&gt; feature. For example, both of the following lines will cause
      a to appear before b on the command line:
<fo:block id="id651772" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib a : a.cpp b ;
lib a : a.cpp : &lt;use&gt;b ;
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      The same approach works for searched libraries, too:
<fo:block id="id651782" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
lib z ;
lib png : : &lt;use&gt;z ;
exe viewer : viewer png z ;
</fo:block></fo:block></fo:block><fo:block id="bbv2.faq.external"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Can I get output of external program as a variable in a Jamfile?
    </fo:marker><fo:block font-size="20.736pt">Can I get output of external program as a variable in a Jamfile?
    </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">From time to time users ask how to run an external program and save
    the result in Jamfile variable, something like:
<fo:block id="id651805" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
local gtk_includes = [ RUN_COMMAND gtk-config ] ;
</fo:block>
      Unfortunately, this is not possible at the moment. However, if the
      result of command invocation is to be used in a command to some tool,
      and you're working on Unix, the following workaround is possible.
<fo:block id="id651816" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
 alias gtk+-2.0 : : : :
         &lt;cflags&gt;"`pkg-config --cflags gtk+-2.0`"
         &lt;inkflags&gt;"`pkg-config --libs gtk+-2.0`"
     ;
</fo:block>
      If you use the "gtk+-2.0" target in sources, then the properties
      specified above will be added to the build properties and eventually
      will appear in the command line. Unix command line shell processes
      the backticks quoting by running the tool and using its output --
      which is what's desired in that case. Thanks to Daniel James for
      sharing this approach.
    </fo:block></fo:block><fo:block id="id651833"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">How to get the project-root location?
    </fo:marker><fo:block font-size="20.736pt">How to get the project-root location?
    </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You might want to use the location of the project-root in your
      Jamfiles. To do it, you'd need to declare path constant in your
      project-root.jam:
<fo:block id="id651842" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
path-constant TOP : . ;
</fo:block>
      After that, the <fo:inline font-family="monospace">TOP</fo:inline> variable can be used in every Jamfile.
    </fo:block></fo:block><fo:block id="id651855"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">How to change compilation flags for one file?
    </fo:marker><fo:block font-size="20.736pt">How to change compilation flags for one file?
    </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If one file must be compiled with special options, you need to
      explicitly declare an <fo:inline font-family="monospace">obj</fo:inline> target for that file and then use
      that target in your <fo:inline font-family="monospace">exe</fo:inline> or <fo:inline font-family="monospace">lib</fo:inline> target:
<fo:block id="id651884" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe a : a.cpp b ;
obj b : b.cpp : &lt;optimization&gt;off ;
</fo:block>
      Of course you can use other properties, for example to specify specific
      compiler options:
<fo:block id="id651894" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe a : a.cpp b ;
obj b : b.cpp : &lt;cflags&gt;-g ;
</fo:block>
      You can also use <fo:basic-link internal-destination="bbv2.tutorial.conditions">conditional
      properties</fo:basic-link> for finer control:
<fo:block id="id651911" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe a : a.cpp b ;
obj b : b.cpp : &lt;variant&gt;release:&lt;optimization&gt;off ;
</fo:block></fo:block></fo:block><fo:block id="bbv2.faq.dll-path"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Why are the dll-path and
    hardcode-dll-paths properties useful?
    </fo:marker><fo:block font-size="20.736pt">Why are the <fo:inline font-family="monospace">dll-path</fo:inline> and
    <fo:inline font-family="monospace">hardcode-dll-paths</fo:inline> properties useful?
    </fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">(This entry is specific to Unix system.)Before answering the
      questions, let's recall a few points about shared libraries. Shared
      libraries can be used by several applications, or other libraries,
      without phisycally including the library in the application. This can
      greatly decrease the total size of applications. It's also possible to
      upgrade a shared library when the application is already
      installed. Finally, shared linking can be faster.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">However, the shared library must be found when the application is
      started. The dynamic linker will search in a system-defined list of
      paths, load the library and resolve the symbols. Which means that you
      should either change the system-defined list, given by the
      <fo:inline font-family="monospace">LD_LIBRARY_PATH</fo:inline> environment variable, or install the
      libraries to a system location. This can be inconvenient when
      developing, since the libraries are not yet ready to be installed, and
      cluttering system paths is undesirable. Luckily, on Unix there's another
      way.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An executable can include a list of additional library paths, which
      will be searched before system paths. This is excellent for development,
      because the build system knows the paths to all libraries and can include
      them in executables. That's done when the <fo:inline font-family="monospace">hardcode-dll-paths</fo:inline>
      feature has the <fo:inline font-family="monospace">true</fo:inline> value, which is the
      default. When the executables should be installed, the story is
      different.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
      Obviously, installed executable should not hardcode paths to your
      development tree. (The <fo:inline font-family="monospace">stage</fo:inline> rule explicitly disables the
      <fo:inline font-family="monospace">hardcode-dll-paths</fo:inline> feature for that reason.) However, you
      can use the <fo:inline font-family="monospace">dll-path</fo:inline> feature to add explicit paths
      manually. For example:
<fo:block id="id652016" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
stage installed : application : &lt;dll-path&gt;/usr/lib/snake
                                &lt;location&gt;/usr/bin ;          
</fo:block>
      will allow the application to find libraries placed to
      <fo:inline font-family="monospace">/usr/lib/snake</fo:inline>.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you install libraries to a nonstandard location and add an
      explicit path, you get more control over libraries which will be used. A
      library of the same name in a system location will not be inadvertently
      used.  If you install libraries to a system location and do not add any
      paths, the system administrator will have more control. Each library can
      be individually upgraded, and all applications will use the new library.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Which approach is best depends on your situation. If the libraries
      are relatively standalone and can be used by third party applications,
      they should be installed in the system location. If you have lots of
      libraries which can be used only by our application, it makes sense to
      install it to a nonstandard directory and add an explicit path, like the
      example above shows. Please also note that guidelines for different
      systems differ in this respect. The Debian guidelines prohibit any
      additional search paths, and Solaris guidelines suggest that they should
      always be used.
    </fo:block></fo:block><fo:block id="bbv2.recipies.site-config"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Targets in site-config.jam</fo:marker><fo:block font-size="20.736pt">Targets in site-config.jam</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It is desirable to declare standard libraries available on a
      given system. Putting target declaration in Jamfile is not really
      good, since locations of the libraries can vary. The solution is
      to put the following to site-config.jam.</fo:block><fo:block id="id652074" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
import project ;
project.initialize $(__name__) ;
project site-config ;
lib zlib : : &lt;name&gt;z ;
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The second line allows this module to act as project. The
      third line gives id to this project &#x2014; it really has no location
      and cannot be used otherwise. The fourth line just declares a
      target. Now, one can write:
<fo:block id="id652096" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
exe hello : hello.cpp /site-config//zlib ;
</fo:block>
      in any Jamfile.</fo:block></fo:block></fo:flow></fo:page-sequence><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="back" language="en" format="1" initial-page-number="auto" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Build v2 architecture</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block>Boost.Build v2 architecture</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="-4pc"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body"><fo:block id="bbv2.arch"><fo:block><fo:block><fo:block margin-left="-4pc" font-size="24.8832pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="8pt" space-before.maximum="12pt" hyphenate="false" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">Appendix&#xA0;B.&#xA0;Boost.Build v2 architecture</fo:block></fo:block></fo:block></fo:block></fo:block><fo:block border-style="solid" border-width="1pt" border-color="black" background-color="#DDDDDD" padding-left="12pt" padding-right="12pt" padding-top="6pt" padding-bottom="6pt" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="always"><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This document is work-in progress. Don't expect much from it
      yet.</fo:block></fo:block><fo:block id="bbv2.arch.overview"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Overview</fo:marker><fo:block font-size="20.736pt">Overview</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The Boost.Build code is structured in four different components:
    "kernel", "util", "build" and "tools". The first two are relatively
    uninteresting, so we'll focus on the remaining pair. The "build" component
    provides classes necessary to declare targets, determine which properties
    should be used for their building, and for creating the dependency
    graph. The "tools" component provides user-visible functionality. It
    mostly allows to declare specific kind of main targets, and declare
    avaiable tools, which are then used when creating the dependency graph.
    </fo:block></fo:block><fo:block id="bbv2.arch.build"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">The build layer</fo:marker><fo:block font-size="20.736pt">The build layer</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The build layer has just four main parts -- abstract targets,
      virtual targets, generators and properties. The abstract targets,
      represented by the "abstract-target" class, correspond to main targets
      -- which, as you recall, can produce different files depending on
      properties. Virtual targets, represented by the 'virtual-target' class
      correspond to real files. The abstract-target class has a method
      'generate', which is given a set of properties and produces virtual
      targets for those properties.       
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There are several classes derived from "abstract-target". The
      "main-target" class represents top-level main target, the "project-target"
      acts like container for all main targets, and "basic-target" class is a
      base class for all further target types.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Since each main target can have several alternatives, all top-level
      target objects are just containers, referring to "real" main target
      classes. The type is that container is "main-target". For example, given:
<fo:block id="id652175" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
alias a ;
lib a : a.cpp : &lt;toolset&gt;gcc ;
</fo:block>
      we would have one-top level instance of "main-target-class", which will
      contain one instance of "alias-target-class" and one instance of
      "lib-target-class". The "generate" method of "main-target" decides
      which of the alternative should be used, and call "generate" on the
      corresponding instance.
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each alternative is a instance of a class derived from
    "basic-target". The "basic-target.generate" does several things that are
    always should be done:
      <fo:list-block id="id652193" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id652194" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Determines what properties should be used for building the
          target. This includes looking at requested properties, requirements,
          and usage requirements of all sources.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id652201" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Builds all sources</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id652205" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>Computes the usage requirements which should be passes back.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block>
      For the real work of constructing virtual target, a new method
      "construct" is called.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The "construct" method can be implemented in any way by classes
      derived from "basic-target", but one specific derived class plays the
      central role -- "typed-target". That class holds the desired type of file
      to be produces, and calls the generators modules to do the job.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Generators are Boost.Build abstractions for a tool. For example, one
      can register a generator which converts target of type CPP into target of
      type OBJ. When run with on a virtual target with CPP type, the generator
      will construct the virtual target of type OBJ. The "generators" module
      implements an algorithm, which given a list of sources, the desired type
      and a list of properties, find all the generators which can perform the conversion.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The virtual targets which are produces by the main targets form a
      graph. Targets which are produces from other ones refer to an instance of
      "action" class, which in turn refers to action's sources, which can
      further refer to actions. The sources, which are not produces from
      anything, don't refer to any actions.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When all virtual targets are produced, they are "actualized". This
    means that the real file names are computed, and the commands that should
    be run are generated. This is done by "virtual-target.actualize" and
    "action.actualize" methods. The first is conceptually simple, while the
    second need additional explanation. The commands in bjam are generated in
    two-stage process. First, a rule with the appropriate name (for example
    "gcc.compile") is called and is given the names of targets. The rule sets
    some variables, like "OPTIONS". After that, the command string is taken,
    and variable are substitutes, so use of OPTIONS inside the command string
    become the real compile options. 
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Boost.Build added a third stage to simplify things. It's now
    possible to automatically convert properties to appropriate assignments to
    variables. For example, &lt;debug-symbols&gt;on would add "-g" to the
    OPTIONS variable, without requiring to manually add this logic to
    gcc.compile. This functionality is part of the "toolset" module.
    </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When target paths are computed and the commands are set, Boost.Build
    just gives control to bjam, which controls the execution of
    commands.</fo:block></fo:block><fo:block id="bbv2.arch.tools"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">The tools layer</fo:marker><fo:block font-size="20.736pt">The tools layer</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Write me!</fo:block></fo:block><fo:block id="bbv2.arch.targets"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Targets</fo:marker><fo:block font-size="20.736pt">Targets</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">NOTE: THIS SECTION IS NOT EXPECTED TO BE READ!
        There are two user-visible kinds of targets in Boost.Build.
  First are "abstract" &#x2014; they correspond to things declared
  by user, for example, projects and executable files. The primary
  thing about abstract target is that it's possible to request them
  to be build with a particular values of some properties. Each
  combination of properties may possible yield different set of
  real file, so abstract target do not have a direct correspondence
  with files.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">File targets, on the contary, are associated with concrete
  files. Dependency graphs for abstract targets with specific
  properties are constructed from file targets. User has no was to
  create file targets, however it can specify rules that detect
  file type for sources, and also rules for transforming between
  file targets of different types. That information is used in
  constructing dependency graph, as desribed in the "next section".
  [ link? ] <fo:inline font-weight="bold">Note:</fo:inline>File targets are not
  the same as targets in Jam sense; the latter are created from
  file targets at the latest possible moment. <fo:inline font-weight="bold">Note:</fo:inline>"File
  target" is a proposed name for what we call virtual targets. It
  it more understandable by users, but has one problem: virtual
  targets can potentially be "phony", and not correspond to any
  file.</fo:block><fo:block id="bbv2.arch.depends"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:marker marker-class-name="section.head.marker">Dependency scanning</fo:marker><fo:block font-size="17.28pt">Dependency scanning</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Dependency scanning is the process of finding implicit
  dependencies, like "#include" statements in C++. The requirements
  for right dependency scanning mechanism are:</fo:block><fo:list-block id="id652366" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id652368" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        Support for different scanning algorithms. C++ and XML have
    quite different syntax for includes and rules for looking up
    included files.
      </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id652374" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        Ability to scan the same file several times. For example,
    single C++ file can be compiled with different include
    paths.
      </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id652380" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        Proper detection of dependencies on generated files.
      </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id652385" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>&#x2022;</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        Proper detection of dependencies from generated file.
      </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block id="id652390"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Support for different scanning algorithms</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Different scanning algorithm are encapsulated by objects
  called "scanners". Please see the documentation for "scanner"
  module for more details.</fo:block></fo:block><fo:block id="id652400"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Ability to scan the same file several times</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As said above, it's possible to compile a C++ file twice, with
  different include paths. Therefore, include dependencies for
  those compilations can be different. The problem is that bjam
  does not allow several scans of the same target.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The solution in Boost.Build is straigtforward. When a virtual
  target is converted to bjam target (via
  <fo:inline font-family="monospace">virtual-target.actualize</fo:inline> method), we specify the scanner
  object to be used. The actualize method will create different
  bjam targets for different scanners.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">All targets with specific scanner are made dependent on target
  without scanner, which target is always created. This is done in
  case the target is updated. The updating action will be
  associated with target without scanner, but if sources for that
  action are touched, all targets &#x2014; with scanner and without
  should be considered outdated.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For example, assume that "a.cpp" is compiled by two compilers
  with different include path. It's also copied into some install
  location. In turn, it's produced from "a.verbatim". The
  dependency graph will look like:</fo:block><fo:block id="id652443" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
a.o (&lt;toolset&gt;gcc)  &lt;--(compile)-- a.cpp (scanner1) ----+
a.o (&lt;toolset&gt;msvc) &lt;--(compile)-- a.cpp (scanner2) ----|
a.cpp (installed copy)    &lt;--(copy) ----------------------- a.cpp (no scanner)
                                                                 ^
                                                                 |
                       a.verbose --------------------------------+
</fo:block></fo:block><fo:block id="id652462"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Proper detection of dependencies on generated files.</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This requirement breaks down to the following ones.</fo:block><fo:list-block id="id652470" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id652477" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        If when compiling "a.cpp" there's include of "a.h", the
    "dir" directory is in include path, and a target called "a.h"
    will be generated to "dir", then bjam should discover the
    include, and create "a.h" before compiling "a.cpp".
      </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id652485" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
      Since almost always Boost.Build generates targets to a
    "bin" directory, it should be supported as well. I.e. in the
    scanario above, Jamfile in "dir" might create a main target,
    which generates "a.h". The file will be generated to "dir/bin"
    directory, but we still have to recornize the dependency.
      </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The first requirement means that when determining what "a.h"
  means, when found in "a.cpp", we have to iterate over all
  directories in include paths, checking for each one:</fo:block><fo:list-block id="id652499" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id652505" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        If there's file "a.h" in that directory, or
      </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id652510" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        If there's a target called "a.h", which will be generated
    to that directory.
      </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Classic Jam has built-in facilities for point (1) above, but
  that's not enough. It's hard to implement the right semantic
  without builtin support. For example, we could try to check if
  there's targer called "a.h" somewhere in dependency graph, and
  add a dependency to it. The problem is that without search in
  include path, the semantic may be incorrect. For example, one can
  have an action which generated some "dummy" header, for system
  which don't have the native one. Naturally, we don't want to
  depend on that generated header on platforms where native one is
  included.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There are two design choices for builtin support. Suppose we
  have files a.cpp and b.cpp, and each one includes header.h,
  generated by some action. Dependency graph created by classic jam
  would look like:</fo:block><fo:block id="id652524" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
a.cpp -----&gt; &lt;scanner1&gt;header.h  [search path: d1, d2, d3]


                  &lt;d2&gt;header.h  --------&gt; header.y
                  [generated in d2]
           
b.cpp -----&gt; &lt;scanner2&gt;header.h [ search path: d1, d2, d4]
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
In this case, Jam thinks all header.h target are not
realated. The right dependency graph might be:

<fo:block id="id652542" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
a.cpp ---- 
          \
           \     
            &gt;----&gt;  &lt;d2&gt;header.h  --------&gt; header.y
           /       [generated in d2]
          / 
b.cpp ----
</fo:block>

or

<fo:block id="id652554" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
a.cpp -----&gt; &lt;scanner1&gt;header.h  [search path: d1, d2, d3]
                          |
                       (includes)
                          V
                  &lt;d2&gt;header.h  --------&gt; header.y
                  [generated in d2]
                          ^
                      (includes)  
                          |
b.cpp -----&gt; &lt;scanner2&gt;header.h [ search path: d1, d2, d4]
</fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
The first alternative was used for some time. The problem
however is: what include paths should be used when scanning
header.h? The second alternative was suggested by Matt Armstrong.
It has similiar effect: add targets which depend on
&lt;scanner1&gt;header.h will also depend on &lt;d2&gt;header.h.
But now we have two different target with two different scanners,
and those targets can be scanned independently. The problem of
first alternative is avoided, so the second alternative is
implemented now.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The second sub-requirements is that targets generated to "bin"
  directory are handled as well. Boost.Build implements
  semi-automatic approach. When compiling C++ files the process
  is:</fo:block><fo:list-block id="id652604" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id652610" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        The main target to which compiled file belongs is found.
      </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id652615" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        All other main targets that the found one depends on are
    found. Those include main target which are used as sources, or
    present as values of "dependency" features.
      </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id652622" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        All directories where files belonging to those main target
    will be generated are added to the include path.
      </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">After this is done, dependencies are found by the approach
  explained previously.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note that if a target uses generated headers from other main
  target, that main target should be explicitly specified as
  dependency property. It would be better to lift this requirement,
  but it seems not very problematic in practice.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For target types other than C++, adding of include paths must
  be implemented anew.</fo:block></fo:block><fo:block id="id652642"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="14.4pt">Proper detection of dependencies from generated files</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Suppose file "a.cpp" includes "a.h" and both are generated by
  some action. Note that classic jam has two stages. In first stage
  dependency graph graph is build and actions which should be run
  are determined. In second stage the actions are executed.
  Initially, neither file exists, so the include is not found. As
  the result, jam might attempt to compile a.cpp before creating
  a.h, and compilation will fail.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The solution in Boost.Jam is to perform additional dependency
  scans after targets are updated. This break separation between
  build stages in jam &#x2014; which some people consider a good
  thing &#x2014; but I'm not aware of any better solution.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In order to understand the rest of this section, you better
  read some details about jam dependency scanning, available
  <fo:basic-link external-destination="http://public.perforce.com:8080/@md=d&amp;cd=//public/jam/src/&amp;ra=s&amp;c=kVu@//2614?ac=10">
  at this link</fo:basic-link>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Whenever a target is updated, Boost.Jam rescans it for
  includes. Consider this graph, created before any actions are
  run.</fo:block><fo:block id="id652683" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
A -------&gt; C ----&gt; C.pro
     /
B --/         C-includes   ---&gt; D
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
Both A and B have dependency on C and C-includes (the latter
dependency is not shown). Say during building we've tried to create
A, then tried to create C and successfully created C.
        </fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In that case, the set of includes in C might well have
  changed. We do not bother to detect precisely which includes were
  added or removed. Instead we create another internal node
  C-includes-2. Then we determine what actions should be run to
  update the target. In fact this mean that we perform logic of
  first stage while already executing stage.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">After actions for C-includes-2 are determined, we add
  C-includes-2 to the list of A's dependents, and stage 2 proceeds
  as usual. Unfortunately, we can't do the same with target B,
  since when it's not visited, C target does not know B depends on
  it. So, we add a flag to C which tells and it was rescanned. When
  visiting B target, the flag is notices and C-includes-2 will be
  added to the list of B's dependencies.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Note also that internal nodes are sometimes updated too.
  Consider this dependency graph:</fo:block><fo:block id="id652719" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
a.o ---&gt; a.cpp
            a.cpp-includes --&gt;  a.h (scanned)
                                   a.h-includes ------&gt; a.h (generated)
                                                                 |
                                                                 |
            a.pro &lt;-------------------------------------------+
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Here, out handling of generated headers come into play. Say
  that a.h exists but is out of date with respect to "a.pro", then
  "a.h (generated)" and "a.h-includes" will be marking for
  updating, but "a.h (scanned)" won't be marked. We have to rescan
  "a.h" file after it's created, but since "a.h (generated)" has no
  scanner associated with it, it's only possible to rescan "a.h"
  after "a.h-includes" target was updated.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Tbe above consideration lead to decision that we'll rescan a
  target whenever it's updated, no matter if this target is
  internal or not.</fo:block><fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id652744"><fo:block keep-with-next="always" font-size="14pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">Warning</fo:block><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
    The remainder of this document is not indended to be read at
    all. This will be rearranged in future.
    </fo:block></fo:block></fo:block><fo:block id="id652750"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">File targets</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
  As described above, file targets corresponds
  to files that Boost.Build manages. User's may be concerned about
  file targets in three ways: when declaring file target types,
  when declaring transformations between types, and when
  determining where file target will be placed. File targets can
  also be connected with actions, that determine how the target is
  created. Both file targets and actions are implemented in the
  <fo:inline font-family="monospace">virtual-target</fo:inline> module.
          </fo:block><fo:block id="id652771"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="10pt">Types</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A file target can be given a file, which determines
  what transformations can be applied to the file. The
  <fo:inline font-family="monospace">type.register</fo:inline> rule declares new types. File type can
  also be assigned a scanner, which is used to find implicit
  dependencies. See "dependency scanning" [ link? ] below.</fo:block></fo:block></fo:block><fo:block id="id652788"><fo:block><fo:block><fo:block keep-together="always" margin-left="-4pc" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em"><fo:block font-size="12pt">Target paths</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To distinguish targets build with different properties, they
  are put in different directories. Rules for determining target
  paths are given below:</fo:block><fo:list-block id="id652798" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="2em"><fo:list-item id="id652804" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        All targets are placed under directory corresponding to the
    project where they are defined.
      </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id652809" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        Each non free, non incidental property cause an additional
    element to be added to the target path. That element has the
    form <fo:inline font-family="monospace">&lt;feature-name&gt;-&lt;feature-value&gt;</fo:inline> for
    ordinary features and <fo:inline font-family="monospace">&lt;feature-value&gt;</fo:inline> for
    implicit ones. [Note about composite features].
      </fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id652831" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
        If the set of free, non incidental properties is different
    from the set of free, non incidental properties for the project
    in which the main target that uses the target is defined, a
    part of the form <fo:inline font-family="monospace">main_target-&lt;name&gt;</fo:inline> is added to
    the target path. <fo:inline font-weight="bold">Note:</fo:inline>It would be nice to completely
    track free features also, but this appears to be complex and
    not extremely needed.
      </fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For example, we might have these paths:</fo:block><fo:block id="id652858" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" font-family="monospace">
debug/optimization-off
debug/main-target-a
</fo:block></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence></fo:root>
